2012-04-08 26 views
3

私はphpとmysqlを初めて使っています。私はYouTubeのphpacademyのチュートリアルに従っています。フォームデータのセクションがありますが、チュートリアルに従った人はすべて、定義されていないインデックスエラーがあります。私は&(アンパサンド)記号でそれを修正しました。しかしそれは次の状況で何をするのですか?なぜ$の前に&シンボルを置くとエラーを止めますか?それは@と同じですか?それは単にエラーを抑制しているのですか、それとも実際に修正したのでしょうか?この場合、&(アンパサンド)記号の意味は何ですか?

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

http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-in-php – Michelle

+0

http://stackoverflow.com/questions/3526555/what-does-this-php-operator-meansおよびhttp://stackoverflow.com/questions/1367454/what-do-operators-in-php-mean –

答えて

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

+0

'彼らはCポインタと似ていません。 '(http://www.php.net/manual/en/language.references.whatare.php) –

+0

これは、未定義のインデックスエラーを修正する良い方法ですか?私は何にも精通していません... haha​​ha –

関連する問題