【 PHP 】PHP8に入門してみた 157日目 PHPの基本 ( ユーザー定義関数 globalとstaticをunset)
PHP8技術者認定初級試験 が始まるようなので 試験に向けて (できるだけ)勉強しようと思います! 使用する書籍は独習PHP 第4版(山田 祥寛)|翔泳社の本 (shoeisha.co.jp) となります。
ユーザー定義関数
globalとstaticでのunsetは注意
global
とstatic
命令を行った変数では、unset
に注意が必要とのことです。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>こんにちは!</title>
<!-- Bootstrapを有効化 -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" />
</head>
<body>
<?php
$x = 10;
function checkScope(): int
{
global $x;
unset($x); // L14の$xが破棄されるわけではありません!
return ++$x;
}
print checkScope() . "<br />";
print $x . "<br />"; // L14の$xは健在です。
function checkStatic(): void
{
static $x = 0;
$x++;
print "unset前 : {$x} " . "<br />";
unset($x); // staticの衣がはがれた・・・というイメージでしょうか。
$x = 13; // ただのローカル変数になりました。
print "unset後 : {$x} " . "<br />";
}
checkStatic();
checkStatic();
?>
</body>
</html>
メモ
global
やstatic
の鎧がなくなってただのローカル変数になるというイメージかなと思います。
ディスカッション
コメント一覧
まだ、コメントがありません