有谁知道为什么我的require_once()或die(); 不管用。 总是显示致命错误,而不是我输入die()的错误消息。 请参阅以下代码:

require_once ('abc.php') or die("oops");

错误信息显示如下

"Fatal error: controller::require_once() [function.require]: Failed opening required '1' (include_path='....."

我键入的不是消息("哎呀")。

或具有比require / require_once更高的优先级。因此php评估

('abc.php') or die("oops")

在将结果传递给require_once之前。或采用两个布尔操作数。 ('abc.php')计算为true,因此整个表达式为true并且

require_once true;

被调用。 require_once接受一个字符串,bool(true)-> string => 1 =>

Failed opening required '1'

您在那里不需要or或die(...)。如果无法读取该文件,则require_once仍将停止php实例。

辉煌的答案。 需要强调的是require_once不是函数。 它是一元运算符(或语言构造,如果您愿意的话),因此echo,new,include等也是如此。

谢谢! 通过以一种似乎可以接受的方式添加die(),虽然有点糟糕,但它抛出一个错误,即看起来像找不到文件和/或要求它失败-或-包含文件中的错误...实际上是 require() or die()处的错误代码

由于include是一种特殊的语言构造而不是一种函数,因此它不需要参数表的括号:

Because include() is a special language construct, parentheses are not needed around its argument. Take care when comparing return value.

实际上,它只有一个参数,将其包装在其他括号中不会改变任何内容:

1 ≡ (1) ≡ ((1)) ≡ (((1))) ≡ …

因此,您的声明与此相同(参数包装器已包装):

require_once (('abc.php') or die("oops"));

因此,我们有一个布尔表达式作为参数,它为true或false。并且这些值分别具有等效于"1"和""的字符串:

var_dump((string) true ==="1");

var_dump((string) false ==="");

这就是为什么出现此错误的打开要求" 1"错误消息的原因。

但是像这样在正确的地方使用括号可以使它像您想要的那样工作:

(@include_once 'abc.php') or die("oops");

此处'abc.php'显然是参数,并且die("oops")的析取是对include_once的返回值执行的。如果文件不存在,则@运算符只是忽略错误消息includ_once将会抛出。

PS:print也是一种特殊的语言构造,其工作方式相同。

评估时:

require_once ('abc.php') or die("oops");

由于某种原因,PHP首先评估" OR die(" oops")"。

强制PHP评估" require_once('abc.php')",将其括在方括号中。

(require_once ('abc.php')) OR die("oops");

但是,如果" require"失败,PHP将停止处理,因此请改用" include"(请参阅??https://stackoverflow.com/a/2418514/1704651)。另外,include_once之前的@符号会禁止来自MySQL的错误消息,因此仅输出" oops"。

(@include_once ('abc.php')) OR die("oops");

可以正常工作。

资料来源:我自己的沮丧和https://bugs.php.net/bug.php?id=22342

包含或死亡也是我所使用的。 当您需要澄清文件丢失的原因时(例如,需要定义的配置文件),它很有用

将@放在include之前可能是个坏主意。 @include会抑制包含文件以及该文件包含的所有文件中的所有错误,这使故障排除和错误处理成为噩梦。

php require_once 不起作用,关于php:require_once()或die()无法正常工作相关推荐

  1. C++_二维数组_定义方式_数组名称的作用_案例考试成绩统计---C++语言工作笔记021

    然后我们来看二维数组,这个跟java有一定区别.

  2. 施耐德服务器的开关起什么作用,schneider施耐德压力开关的用途及工作原理

    韩国schneider施耐德压力开关的用途: 压力开关有机械式,电子式两大类等.G&L电子压力开关是通过高精度仪表放大器放大压力信号,通过高速MCU采集并处理数据,内置精密传感器进行补偿,是检 ...

  3. require和require_once的区别

    require 的使用方法如 require("./inc.php"); .通常放在 PHP 程式的最前面,PHP 程式在执行前,就会先读入 require 所指定引入的档案,使它 ...

  4. include,include_once,require,require_once的区别

    include() .require()语句包含并运行指定文件.这两结构在包含文件上完全一样,唯一的区别是对于错误的处理.require()语句在遇到包含文件不存在,或是出错的时候,就停止即行,并报错 ...

  5. require_once的用法

    require_once 语句和 require 语句完全相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含. 参见 include_once 的文档来理解 _once 的含 ...

  6. require,include,require_once和include_once之间的区别?

    在PHP中: 什么时候应该使用require与include ? 什么时候应该使用require_once和include_once ? #1楼 您应该将类​​和函数定义组织在文件中. 使用requi ...

  7. include、require、include_once、require_once 的区别

    include.require.include_once.require_once 的区别 了解下include.include_once.require和require_once这4个函数: inc ...

  8. PHP require、include、require_once 和 include_once 的区别

    通常,开发人员会对 require.include.require_once 和 include_once 感到困惑,因为它们看起来相同,但又有些不同.让我们看看它们有何不同. require.inc ...

  9. maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

    maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository. ...

最新文章

  1. .net c# 正则表达式 平衡组/递归匹配
  2. python求5_python5
  3. 关于异步请求的一些事
  4. c语言fork()创建线程,操作系统的创建原语是fork()还是creat()?
  5. 职场真实故事计划##职场干货# 职场晋升之路
  6. SAP License:初学作业费用分割
  7. rust油桶用什么打_火龙果用什么膨大剂好?果子增大用什么肥料?什么时候打膨大素?...
  8. Datatables+Bootstrap
  9. Pandas手册汉化
  10. qt5 开发及实例(第4版)_张厚粲现代心理与教育统计学第4版配套章节题库
  11. SiT1602:SiTime低功耗单端有源晶振
  12. AR技术在智慧交通中的应用
  13. 毛边效果 html,Html5中Canvas画线有毛边如何解决
  14. 电脑端Ins图片保存
  15. 一篇文章带你了解——巨量引擎平台广告审核规则
  16. 如何记录日常收支,将账目导出生成表格保存
  17. 认认真真推荐9个高质量公众号
  18. SDUT-OJ偏序关系
  19. python入门(五)实现统计《哈姆雷特》最多单词和《三国演义》人物出场次数
  20. Centos7进入图形界面

热门文章

  1. 《微信公众平台应用开发实战(第2版)》一导读
  2. 使用 Struts2 校验器校验用户注册信息的例子
  3. 【GoLang】深入理解slice len cap什么算法? 参数传递有啥蹊跷?
  4. flexbox布局的兼容性
  5. iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
  6. [C++再学习系列] 函数模板和类模板
  7. 用createrepo命令创建自己的yum源
  8. 1079 Total Sales of Supply Chain
  9. c语言输入函数有什么作用,c语言的输入函数有哪些
  10. 第四范式完成C轮融资,金额超10亿元