我正在运行PHP脚本,并继续收到如下错误:
注意:未定义的变量:第10行的C:\ wamp\www\mypath\index.php中的my_variable_name
注意:第11行的未定义索引:my_index C:\ wamp\www\mypath\index.php
第10行和第11行看起来像这样:
echo "My variable value is: " . $my_variable_name;
echo "My index value is: " . $my_array["my_index"];
Run Code Online (Sandbox Code Playgroud)
这些错误消息的含义是什么?
他们为什么突然出现?我曾经使用这个脚本多年,我从来没有遇到任何问题.
我该如何解决?
这是一个一般参考问题,供人们链接到重复,而不是一遍又一遍地解释这个问题.我觉得这是必要的,因为关于这个问题的大多数现实世界的答案都非常具体.
相关元讨论:
我有几个较旧的应用程序,当在E_NOTICE错误级别上运行时会抛出大量"xyz未定义"和"未定义的偏移"消息,因为没有使用isset()和consorts 显式检查变量的存在.
我正在考虑通过它们来使它们与E_NOTICE兼容,因为关于缺失变量或偏移的通知可以是救生员,可能会获得一些微小的性能改进,并且它总体上更清洁.
但是,我不喜欢对我的代码造成数百isset() empty()和array_key_exists()s的影响.它变得臃肿,变得不那么可读,没有在价值或意义上获得任何东西.
如何在没有过多变量检查的情况下构建代码,同时还兼容E_NOTICE?
我只是想知道是否有一种快速的方法来回应未定义的变量而不会收到警告?(我可以更改错误报告级别,但我不想.)我到目前为止最小的是:
isset($variable)?$variable:''
我出于以下几个原因不喜欢这个:
$variable 重复$arrayvar['parameter']我最近设置了一个新的Web服务器,我收到了未定义的变量错误.如果我在没有初始化的情况下使用变量,它会给我一个错误.源代码没有改变.只有LAMP环境才有.你会如何解决这个问题?
谢谢