我刚接触php和mysql,正在跟随phpacademy的youtube教程学习。其中有一个表单数据的部分,但是每个人都会遇到未定义索引错误(包括我自己)。我用&
(和号)符号修复了它。但是在下面的情况下它是做什么的?为什么在$前面放置&符号可以解决错误?它与@相同吗?它只是抑制错误还是实际上修复了它?
$submit = &$_POST['submit'];
我刚接触php和mysql,正在跟随phpacademy的youtube教程学习。其中有一个表单数据的部分,但是每个人都会遇到未定义索引错误(包括我自己)。我用&
(和号)符号修复了它。但是在下面的情况下它是做什么的?为什么在$前面放置&符号可以解决错误?它与@相同吗?它只是抑制错误还是实际上修复了它?
$submit = &$_POST['submit'];
$submit
赋值,而是给它赋一个指向这个值的引用。如果你熟悉C语言和指针,这就像是一个指向值的指针,在访问它时会自动解引用。但是,PHP不允许指针算术或获取实际内存地址(与C不同)。$a = 7;
$b = $a;
$c = &$a;
$c = 5;
echo $a, $b, $c; // 575
为了避免你提到的错误,你可以使用以下模式...
$submit = isset($_POST['submit']) ? $_POST['submit'] : 'default_value';
...or...
$submit = filter_input(INPUT_POST, 'submit');