2012-04-08 47 views
3

我是新来的PHP和MySQL。我在YouTube上遵循phpacademy的教程。有一部分是表单数据,但每个跟随本教程的人(包括我自己)都有未定义的索引错误。我用&(&符号)符号固定它。但是在以下情况下它有什么作用?为什么把&这个符号放在$的前面会停止这个错误?它是否与@相同,是只是抑制了错误还是实际修复了错误?&(&符号)符号在这种情况下表示什么?

$submit = &$_POST['submit']; 
+0

http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php – Michelle 2012-04-08 06:15:00

+0

http://stackoverflow.com/questions/3526555/what-does-this-php-operator-means和http://stackoverflow.com/questions/1367454/what-do-operators-in-php-mean – 2012-04-08 06:44:24

回答

7

这意味着代替值分配给$submit,分配给值的参考$submit

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

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

echo $a, $b, $c; // 575 

CodePad

阻止你提到的错误,你可以使用诸如图案...

$submit = isset($_POST['submit']) ? $_POST['submit'] : 'default_value'; 

......或者......

$submit = filter_input(INPUT_POST, 'submit'); 
+0

等等,什么?如何分配参考工作。 – Michelle 2012-04-08 06:12:40

+0

'他们不像C指针'(http://www.php.net/manual/en/language.references.whatare.php) – 2012-04-08 06:13:38

+0

所以这是修复未定义索引错误的好方法吗?我对什么都不熟悉... haha​​ha – 2012-04-08 06:14:18