【发布时间】:2012-12-16 09:44:02
【问题描述】:
include ( $_GET['p'] == 'home') ? 'pages/home.php' : NULL;
给出错误:
注意:未定义的索引:第 38 行 /var/www/index.php 中的 p
警告: require():第 38 行 /var/www/index.php 中的文件名不能为空
致命错误:require():打开失败需要'' (include_path='.:/usr/share/php:/usr/share/pear') 在 /var/www/index.php 第 38 行
我了解未定义的索引,但为什么会出现其他错误?这一行:
include ( !isset($_GET['p'])) ? 'pages/home.php': NULL;
工作正常。请注意,第一个代码在 if 语句中可以正常工作(除了未定义的索引,我理解)
【问题讨论】:
-
通知级别很低。大多数人会忽略他们,或者如果他们得到一对(我赞成或反对)就不会打扰。致命错误就是问题所在。
-
错误说需要,您的代码包含。请解决您的问题,它显然提供了错误的信息。错误信息也很清楚。我想知道其中哪一部分是您无法理解的。很高兴知道能给出更好的答案。我们在网站上还有一个可能对您有用的参考:Reference - What does this error mean in PHP? - 它还涵盖了您提供的所有信息。
-
感谢您的链接。我使用的是包含,而不是要求 - 即使输出的错误与要求有关。
标签: ternary-operator php