【 PHP 】PHP8に入門してみた 77日目 PHPの基本 ( 演算子 エラーを隠す演算子 !? )

PHP8技術者認定初級試験 が始まるようなので 試験に向けて (できるだけ)勉強しようと思います! 使用する書籍は独習PHP 第4版(山田 祥寛)|翔泳社の本 (shoeisha.co.jp) となります。

演算子

エラーをなかったことにする演算子

PHPではエラーをなかったことにする演算子(@)が存在するようです。

Javaでいうところの「catchしたエラーを握りつぶす」という不届きな実装のことですね😎

PHP8より以前は文字通り、致命的なエラーであってもなかったことにできたようですが
PHP8以降は致命的エラーはちゃんと表示されるようです。

この演算子は「式」の先頭にだけ使用可能。ifやwhile、クラス、関数の定義には付与できません。

<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHPの基本</title>
</head>

<body>
    <?php
    // print命令は指定された文字列を表示するための命令です。
    $msg = 'こんにちは、変数の世界! <br />';

    print $msg;
    print 'こんにちは、皆さん! ';

    print '<br />';

    $data = ['apple' => 'りんご'];
    print $data['orange']; // Warningが発生します。
    print '<br />';
    print @$data['orange']; // 何事もなかったかのように処理が進みます!
    print '<br />';
    print '↑どうですか?'

    ?>
</body>

</html>

@が無い場合です。

@ありの場合です。

 

メモ

握りつぶすことはギルティ!

PHPPHP

Posted by raika@blog