快速问答。我在教程中看到了这样一个简单的if语句:
if($vest) echo $vest->naslov但是,当我这样写它时,我得到了一个错误未定义的变量:背心和我必须用旧的方式编写代码:
if(isset($vest)) echo $vest->naslovphp.ini文件中是否有对此进行管理的设置?目前我正在Ubuntu上使用LAMP (最新版本)。
发布于 2012-11-23 20:29:57
您已经打开了E_STRICT,如果在检查变量之前没有声明变量,就会发出抱怨。您可以通过在E_STRICT中关闭php.ini来解决这一问题,但更好的方法是提前声明变量--只需在函数顶部这样做:
$vest = null;在你其余的逻辑之前。这是一个很好的实践,因为它迫使您考虑程序的执行方式,以更接近实际的方式执行。
发布于 2012-11-23 20:29:18
您可以将error_reporting降低到E_ALL ^ E_NOTICE,但实际上这是一个很糟糕的实践,它可能导致很难跟踪bug。如果$vest是一个错误,您将不知道,并且您的条件将永远无法工作。
相反,尝试构造您的应用程序,以便您始终知道哪些变量是定义的,哪些没有定义。然后,您可以不用担心地使用速记版本。
发布于 2012-11-23 20:29:46
Undefined variable: vest错误意味着无法识别变量$vest。isset($vest)不生成错误的原因是isset()检查$vest是否已经设置。因此,if(isset($vest))将对isset($vest)的返回值执行布尔检查。
如果您只使用if($vest),php将假定$vest已经设置(实际上,$vest仍未定义),并执行布尔检查操作。
https://stackoverflow.com/questions/13535319
复制相似问题