3

我是 php 和 mysql 的新手。我在 youtube 上关注 phpacademy 的教程。有一个部分是表单数据,但是每个遵循教程的人(包括我自己)都遇到了未定义的索引错误。我用&(和号)符号修复了它。但是在以下情况下它会做什么?为什么将 & 符号放在 $ 前面会停止错误?它与@相同吗,它只是抑制错误还是实际上修复了它?

$submit = &$_POST['submit'];
4

1 回答 1

7

这意味着不是将值分配给$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');
于 2012-04-08T06:06:05.960 回答