php require_once 不起作用,关于php:require_once()或die()无法正常工作
有谁知道为什么我的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()无法正常工作相关推荐
- C++_二维数组_定义方式_数组名称的作用_案例考试成绩统计---C++语言工作笔记021
然后我们来看二维数组,这个跟java有一定区别.
- 施耐德服务器的开关起什么作用,schneider施耐德压力开关的用途及工作原理
韩国schneider施耐德压力开关的用途: 压力开关有机械式,电子式两大类等.G&L电子压力开关是通过高精度仪表放大器放大压力信号,通过高速MCU采集并处理数据,内置精密传感器进行补偿,是检 ...
- require和require_once的区别
require 的使用方法如 require("./inc.php"); .通常放在 PHP 程式的最前面,PHP 程式在执行前,就会先读入 require 所指定引入的档案,使它 ...
- include,include_once,require,require_once的区别
include() .require()语句包含并运行指定文件.这两结构在包含文件上完全一样,唯一的区别是对于错误的处理.require()语句在遇到包含文件不存在,或是出错的时候,就停止即行,并报错 ...
- require_once的用法
require_once 语句和 require 语句完全相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含. 参见 include_once 的文档来理解 _once 的含 ...
- require,include,require_once和include_once之间的区别?
在PHP中: 什么时候应该使用require与include ? 什么时候应该使用require_once和include_once ? #1楼 您应该将类和函数定义组织在文件中. 使用requi ...
- include、require、include_once、require_once 的区别
include.require.include_once.require_once 的区别 了解下include.include_once.require和require_once这4个函数: inc ...
- PHP require、include、require_once 和 include_once 的区别
通常,开发人员会对 require.include.require_once 和 include_once 感到困惑,因为它们看起来相同,但又有些不同.让我们看看它们有何不同. require.inc ...
- maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令
maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository. ...
最新文章
- .net c# 正则表达式 平衡组/递归匹配
- python求5_python5
- 关于异步请求的一些事
- c语言fork()创建线程,操作系统的创建原语是fork()还是creat()?
- 职场真实故事计划##职场干货# 职场晋升之路
- SAP License:初学作业费用分割
- rust油桶用什么打_火龙果用什么膨大剂好?果子增大用什么肥料?什么时候打膨大素?...
- Datatables+Bootstrap
- Pandas手册汉化
- qt5 开发及实例(第4版)_张厚粲现代心理与教育统计学第4版配套章节题库
- SiT1602:SiTime低功耗单端有源晶振
- AR技术在智慧交通中的应用
- 毛边效果 html,Html5中Canvas画线有毛边如何解决
- 电脑端Ins图片保存
- 一篇文章带你了解——巨量引擎平台广告审核规则
- 如何记录日常收支,将账目导出生成表格保存
- 认认真真推荐9个高质量公众号
- SDUT-OJ偏序关系
- python入门(五)实现统计《哈姆雷特》最多单词和《三国演义》人物出场次数
- Centos7进入图形界面