对不起,如果这是一个恼人的问题(我来自红宝石背景,我是 PHP 新手)。
我觉得你不能这样做有点奇怪:
if($defined_array['undefined_index'] == 'a string') {
do_something();
}
没有受到警告的猛烈抨击。
- 在这种特殊情况下,如果变量不存在,您怎么会收到警告?对于松散类型的语言,这是一种奇怪的相等实现。只得到一个
false
. 是因为口译员的限制吗?这背后的技术原因是什么?我只是好奇。 是否有任何功能、构造、习语或任何我不知道的东西可以避免我每 4 行左右执行一次:
if(isset($defined_array['undefined_index']) && $defined_array['undefined_index'] == 'a string') { do_something(); }
我知道我可以声明我打算使用的每一个数组键,但是如果 PHP 每次都打算给你一巴掌,那么在使用它们之前不被迫声明变量有什么意义呢?