首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP -如果是设置速记

PHP -如果是设置速记
EN

Stack Overflow用户
提问于 2012-11-23 20:24:55
回答 6查看 901关注 0票数 1

快速问答。我在教程中看到了这样一个简单的if语句:

代码语言:javascript
复制
if($vest) echo $vest->naslov

但是,当我这样写它时,我得到了一个错误未定义的变量:背心和我必须用旧的方式编写代码:

代码语言:javascript
复制
if(isset($vest)) echo $vest->naslov

php.ini文件中是否有对此进行管理的设置?目前我正在Ubuntu上使用LAMP (最新版本)。

EN

回答 6

Stack Overflow用户

发布于 2012-11-23 20:29:57

您已经打开了E_STRICT,如果在检查变量之前没有声明变量,就会发出抱怨。您可以通过在E_STRICT中关闭php.ini来解决这一问题,但更好的方法是提前声明变量--只需在函数顶部这样做:

代码语言:javascript
复制
$vest = null;

在你其余的逻辑之前。这是一个很好的实践,因为它迫使您考虑程序的执行方式,以更接近实际的方式执行。

票数 4
EN

Stack Overflow用户

发布于 2012-11-23 20:29:18

您可以将error_reporting降低到E_ALL ^ E_NOTICE,但实际上这是一个很糟糕的实践,它可能导致很难跟踪bug。如果$vest是一个错误,您将不知道,并且您的条件将永远无法工作。

相反,尝试构造您的应用程序,以便您始终知道哪些变量是定义的,哪些没有定义。然后,您可以不用担心地使用速记版本。

票数 2
EN

Stack Overflow用户

发布于 2012-11-23 20:29:46

Undefined variable: vest错误意味着无法识别变量$vestisset($vest)不生成错误的原因是isset()检查$vest是否已经设置。因此,if(isset($vest))将对isset($vest)的返回值执行布尔检查。

如果您只使用if($vest),php将假定$vest已经设置(实际上,$vest仍未定义),并执行布尔检查操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13535319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档