「PHP/入門/変数と値」の版間の差分
削除された内容 追加された内容
→null: null は、変数の束縛を解く時につかわれ、その意味では unset() と似ています。 NULLが入った変数は、isset()はfalseを返します。 ??は、NULL合体演算子です。式1 ?? 式2は、isset(式1) ? 式1 : 式2と同じ意味です。v7.0から導入されました。 タグ: 2017年版ソースエディター |
→未定義変数: 2022年12月現在の最新の安定バージョン v8.1.13 では、未定義(Undefined)の変数参照すると警告文(warning)が出ます。→エラー制御演算子(@): エラー制御演算子(@)は、名前と機能がやや乖離していて、「メッセージ抑制演算子」程度の機能しかありません。 エラー制御演算子には、トラブルシューティングに役立つエラーや警告を表示させないという害悪があるので、他の方法(例えば例外処理)を検討するべきです。 タグ: 2017年版ソースエディター |
||
600 行
=== 未定義変数 ===
;例:<syntaxhighlight lang=php line>▼
▲:<syntaxhighlight lang=php>
<?php
echo $w; // 未定義変数の参照
?>
</syntaxhighlight>
▲Warning: Undefined variable $w in C:\ファイルアドレス\ファイル名.php on line 2
▲Warning: Undefined variable $w in C:\ファイルアドレス\ファイル名.php on line 3
hello
</syntaxhighlight>
: 意図的に未定義変数を参照することはありえません。
: 未定義変数の参照が起こるときは、概ねミススペルが原因です。
: 未定義変数の参照に関する警告を、エラー制御演算子(@)で回避するのは間違いです。未定義となった原因を排除するか、適切な初期値を与えましょう。
=== エラー制御演算子(@) ===
エラー制御演算子(@)は、名前と機能がやや乖離していて、「メッセージ抑制演算子」程度の機能しかありません。
エラー制御演算子には、トラブルシューティングに役立つエラーや警告を表示させないという害悪があるので、他の方法(例えば例外処理)を検討するべきです。
;例:<syntaxhighlight lang=php line>
▲:<syntaxhighlight lang=php>
<?php
$body = file ('/noexist') or print __LINE__ . ":" . error_get_last()['message'] . PHP_EOL;
$body = @file ('/noexist') or print __LINE__ . ":" . error_get_last()['message'] . PHP_EOL;
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
PHP Warning: file(/noexist): Failed to open stream: No such file or directory in /workspace/Main.php on line 2
2:file(/noexist): Failed to open stream: No such file or directory
3:file(/noexist): Failed to open stream: No such file or directory
</syntaxhighlight>
[[Category:PHP|にゆうもんへん]]
|