PHPで色々書くと、やはりエラーとかの壁にぶつかる時が必ず来る。特に変数に$_POST、もしくは$_GETの値を代入する時に
Undefined index: ○○ in …..
っていうエラーが出るんじゃないですか。そしてそのエラーが出ないように、@をつけることによってエラーの出力が止められます。
でもそれをやっていいでしょうか?
簡単な例をあげましょう。
算数を行うプログラムを書きます。
<?php
$number1 = $_GET['number1'];
$number2 = $_GET['number2'];
?>
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<form action="#">
<input type="text" name="number1" placeholder="数字1">
<input type="text" name="number2" placeholder="数字2">
<input type="submit" value="送信">
</form>
</body>
</html>
上にあるプログラムを初めて実行すると、例のエラーが出ます。しかも2個も出ます。そして値を入れると、なくなりますよね。
そしてここで@を変数の頭に書いてみましょう。
@$number1 = $_GET['number1'];
@$number2 = $_GET['number2'];
実行してみると、狙い通り、エラーメッセージが出てませんよね。
ゴールはエラーが出ないように書く、だけどエラーを隠すと、エラーを防ぐっていう違いがあります。