isset是否需要用于if语句中的所有变量?

时间:2011-07-15 22:26:19

标签: php

如果我使用if语句,

<?php if(strlen($variable) >=3) { ... } ?>

并且实际上没有设置变量,这会在PHP 5(3.6)中出现错误。但是,如果我使用isset() strlen(),它就不会。但是,在PHP 4(4.9)中,当我只使用strlen()时,它完全正常,没有任何错误。

这是自版本4.4.9以来发生了什么变化吗?如果没有,有没有办法可以恢复在php.ini中检查变量的老式方法?我发现你必须在变量上运行这两个函数真的很奇怪,因为它确实使代码比必要的更麻烦。特别是如果你正在与三元运营商合作......

确切地说,我正在处理一个GET变量,而且我遇到了这样的错误:
未定义的索引:第x行的file.php中的x

1 个答案:

答案 0 :(得分:2)

虽然我同意@ deceze的评论,但是你看到这些消息的原因,不是php 4和php 5之间的区别,而是error reporting settings的区别。现在您正在展示E_NOTICE,而不是之前。