如何在PHP脚本中查找未定义的变量

Sad*_*per 3 php unit-testing

假设我们在PHP中有以下功能:

public function testSomething()
{
    $name = perform_sql_query("SELECT name FROM table WHERE id = $entity_id;");
    assert($name == "some_name");
} 
Run Code Online (Sandbox Code Playgroud)

查询在语法上是正确的,但由于$ entity_id未定义 - 查询将始终搜索'id = 0',这在语义上是不正确的.

我希望这些函数在尝试使用未定义的变量时自动失败.PHP中有这样的机制吗?或者也许有一些工具可用于分析PHP源代码以找到这种情况?

更新这些未定义的变量可以出现在项目的任何地方,因此正确的决定是检查每个函数中的函数参数.

UPDATE2设置错误处理程序帮助.现在,无论何时使用未初始化的变量,都会抛出异常.

sou*_*rge 6

PHP在脚本错误中有多个严重性级别.您可以设置要将其视为函数的错误error_reporting()php.ini使用相同名称-directive进行设置.这就是你如何设置PHP来报告可能导致错误的任何内容(如果你是第一次设置它,这会导致很多消息,但修复这些错误会给你一个更稳定的应用程序):

# In your php script:
error_reporting(E_ALL | E_STRICT);

# Or in your php.ini:
error_reporting = E_ALL | E_STRICT
Run Code Online (Sandbox Code Playgroud)