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

CodePad

あなたが言及したエラーを止めるために、あなたは次のようなパターンを使うことができます...

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

...また...

$submit = filter_input(INPUT_POST, 'submit');
于 2012-04-08T06:06:05.960 に答える