3

请参阅下面的代码,这在 PHP 中完美运行。谁能解释一下这段代码是如何工作的。因为在下面的代码中我已经声明$caregory_id without semicolon并且没有任何值减速。然后这段代码也可以完美运行,没有任何错误,并var_dump($category_id)返回一个null值。

php如何在没有分号的情况下执行此代码?

<?php
    $category_id= //No semicolon
    var_dump($category_id); //returns NULL
?>
4

1 回答 1

13

它之所以有效,是因为 PHP 像这样对待您的代码:

$category_id = var_dump($category_id);

的返回值var_dump()被赋值给$category_id。PHP 中的未定义变量被隐式设置为null,这就是您在var_dump(). 但是,您也会收到关于$category_id未定义的通知;如果你没有看到它,你应该在你的脚本中使用这个代码:

error_reporting(-1);
ini_set('display_errors', 'On');

在开发过程中也建议使用这些设置,因为它们可以捕获在生产机器上不会被注意到的问题。

于 2013-04-04T07:56:29.830 回答