在这种情况下,&(&符号)符号意味着什么?

Rya*_*air 3 html php mysql send

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

$submit = &$_POST['submit'];
Run Code Online (Sandbox Code Playgroud)

ale*_*lex 7

它意味着不是将值$submit赋给,而是将值的引用分配给$submit.

如果您熟悉C和指针,它就像指向访问它时自动解除引用的值的指针.但是,PHP不允许事物指针算术或获取实际的内存地址(与C不同).

$a = 7;
$b = $a;
$c = &$a;
$c = 5;

echo $a, $b, $c; // 575
Run Code Online (Sandbox Code Playgroud)

CodePad.

要停止您提到的错误,您可以使用诸如...之类的模式

$submit = isset($_POST['submit']) ? $_POST['submit'] : 'default_value';
Run Code Online (Sandbox Code Playgroud)

...要么...

$submit = filter_input(INPUT_POST, 'submit');
Run Code Online (Sandbox Code Playgroud)