@ってなに?

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'];

実行してみると、狙い通り、エラーメッセージが出てませんよね。

ゴールはエラーが出ないように書く、だけどエラーを隠すと、エラーを防ぐっていう違いがあります。

Leave a Reply

Create your own website, free on WordPress.com.Create your own website.
Start free