Mam's WebSite

Mamの覚書Q&A検索


大項目:「 PHP 」 - 中項目:「 その他 」

「 PHPでエラーが発生しても無視するには 」

PHPでエラーが発生しても無視して実行するようにするには
エラー演算子(@)


回答

phpはエラー演算子(@)というものがあり、@を付けるとエラーを無視して実行します。

ソース

$hoge["a"]=1;
$hoge["b"]=2;
echo $hoge["c"]; //ここでエラー(警告)
 
以下が出力される
Notice: Undefined index: c in /var/www/htdocs/a.php on line 3
 
-----------------------------------------------------------
$hoge["a"]=1;
$hoge["b"]=2;
echo @$hoge["c"]; //ここでエラー(警告)ですが、何も出力されない
 
-----------------------------------------------------------
echo (10/0); //ここでエラー(警告)
 
以下が出力される
Warning: Division by zero in /var/www/htdocs/a.php on line 1
 INF
 
-----------------------------------------------------------
echo @(10/0); //ここでエラー(警告)
 
以下が出力される
 INF
 
-----------------------------------------------------------
$lines = file('http://mam-mam.net/hoge.html'); //存在しないURL
 
以下が出力される
Warning: file(http://mam-mam.net/hoge.html): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Foundin /var/www/htdocs/a.php on line 1
-----------------------------------------------------------
$lines = @file('http://mam-mam.net/hoge.html'); //存在しないURL
 
何も出力されなくなる
-----------------------------------------------------------
$lines = file('/var/tmp/log.txt'); //存在しないファイル
 
以下が出力される
Warning: file(/var/tmp/log.txt): failed to open stream: No such file or directory in /var/www/htdocs/a.php on line 1
-----------------------------------------------------------
$lines = @file('/var/tmp/log.txt'); //存在しないファイル
 
何も出力されなくなる

Copyright 2019 Mam