我是php和mysql的新手。我在youtube上关注phpacademy的教程。有一个部分是表单数据,但是每个遵循教程(包括我自己)的人都有未定义的索引错误。我用&
(&符号)符号修复了它。但它在以下情况下做了什么?为什么把& $停止前面的符号错误?它和@是一样的吗?它只是抑制错误还是实际修复它?
$submit = &$_POST['submit'];
答案 0 :(得分: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');