【发布时间】:2016-02-10 21:55:34
【问题描述】:
有些事情让我抓狂,如果我在 IF 语句中声明一个变量,我会得到一个未定义的变量。如果我在 IF 语句上方声明此变量,PHP 通知就会消失。
我的代码:
if($tab_sel==FILENAME_DEFAULT){ // FILENAME_DEFAULT = index.php
if(...){
some functions
}
$nb_pages=ceil($count/$limit) : 0;
}
echo $nb_pages; //4000 is displayed on the page (OK),
但在 Nginx 日志中,我得到:
FastCGI sent in stderr: "PHP message: PHP Notice : Undefined variable nb_pages in /.../index.php
但是当我加载页面时,我可以看到nb_page正确显示(例如:值为4000),但是在日志中,未定义的变量..
在我的示例中,如果我在“if($tab_sel==FILENAME_DEFAULT){”上方声明 nb_pages,未定义的就会消失。
有什么想法吗?
【问题讨论】:
-
如果
$tab_sel != 'index.php'则不会定义$nb_pages。 -
如果只有 $tab_sel==FILENAME_DEFAULT,则定义了 $nb_pages。
-
谢谢,但 FILENAME_DEFAULT=index.php,否则我不会在页面上看到 nb_pages=4000
-
您对变量范围感到困惑。我敢打赌,错误实际上是在 echo nb_page 行引发的。如果您在 if 块内定义 nb_page,它将仅在 if 块的生命周期内可用。 -- 除非有文档另有说明。
-
你确定那个丹?我认为我们可以在 if 块中声明一个变量并在外部使用它,不是吗?