您如何在PHPStan中处理这些情况:
// view.php <b><?=$foo?></b>
a.php
和b.php
// a.php $foo = 'bar'; // b.php require 'a.php'; echo $foo;
PHPStan都将其报告为Undefined variable: $foo
您如何处理?可以将PHPStan配置为以某种方式执行您的应用程序,以便知道这些变量实际上是在运行时定义的吗?
答案 0 :(得分:1)
您可以尝试使用phpstan#104 (comment)中提供的phpstan.neon
解决方案:
即使使用特定的目录,也可以使用正则表达式忽略特定变量的错误。您可以使用:
parameters:
ignoreErrors:
-
message: '#Undefined variable: \$foo.*#'
path: my/directory/*
/** @var string $foo */
echo $foo; // No error
echo $unintededUndeclaredVariable; // Error
答案 1 :(得分:0)
您需要做的只是检查以确保设置了变量。
例如
if (isset($foo)) {
echo $foo;
}
或以下类似内容,如果您不想将所有代码包装在if
中。
if (! isset($foo)) {
throw new Exception('$foo not set');
}