「PHP/入門/変数と値」の版間の差分
削除された内容 追加された内容
→演算子: header('Content-Type: text/plain'); タグ: 2017年版ソースエディター |
→unset: header('Content-Type: text/plain');PPHPでは、ループ変数のスコープはループではなく関数スコープ(あるいはグローバルスコープ)なので、ループを抜けたあと悪さをしないように、unset() しましょう(ループから脱走したリファレンスを使って代入すると発見困難なバグになります)。 ドメインによっては、 $ループ変数 = null; で標準化していることもありますが趣旨は同じです。 タグ: 2017年版ソースエディター |
||
541 行
ためしに下記コード例では、unsetの適用後、変数を参照しています。
;例:<syntaxhighlight lang=php line>
<?php
header('Content-Type: text/plain');
$num1 = 70;▼
$num2 = 12;▼
echo $n, PHP_EOL;
echo $m, PHP_EOL;
unset($
echo $m, PHP_EOL;
echo $x, PHP_EOL;
unset($x);
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
70
12
PHP Warning: Undefined variable $
PHP Warning: Undefined variable $x in /workspace/Main.php on line 11
</syntaxhighlight>
: unset() された $m は、存在しない変数 $x と同じ挙動をします。
: unset($x) しても何も起こりません。
PHPでは、ループ変数のスコープはループ'''ではなく'''関数スコープ(あるいはグローバルスコープ)なので、ループを抜けたあと悪さをしないように、unset() しましょう(ループから脱走したリファレンスを使って代入すると発見困難なバグになります)。
ドメインによっては、 $ループ変数 = null; で標準化していることもありますが趣旨は同じです。
=== null ===
|