我是 php 和 mysql 的新手。我在 youtube 上关注 phpacademy 的教程。有一个部分是表单数据,但是每个遵循教程的人(包括我自己)都遇到了未定义的索引错误。我用&
(和号)符号修复了它。但是在以下情况下它会做什么?为什么将 & 符号放在 $ 前面会停止错误?它与@相同吗,它只是抑制错误还是实际上修复了它?
$submit = &$_POST['submit'];
这意味着不是将值分配给$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';
...或者...
$submit = filter_input(INPUT_POST, 'submit');