サンプル・プログラムの実行例
目次
サンプル・プログラム
exitVersion.php | サンプル・プログラム本体。 |
バージョン | 更新日 | 内容 |
---|---|---|
1.0.0 | 2024/01/28 | 初版 |
解説:指定した関数を実行し,その戻り値を返す
73: /**
74: * 指定した関数を実行し,その戻り値を返す.
75: * @参考URL https://www.pahoo.org/e-soul/webtech/php01/php13-01.shtm
76: * phpversion関数が実装されていなければ強制終了する.
77: * @param string $func 実行する関数
78: * @return mixed 戻り値
79: */
80: function execFunc($func, ...$vars) {
81: if (function_exists($func) === FALSE) {
82: echo 'Sorry, this program requires ' . $func . ' function to work.';
83: exit(1);
84: }
85: return $func(...$vars);
86: }
そのために用意したのがユーザー関数 execFunc である。
まず関数が存在するかどうかを調べる組み込み関数 function_exists を実行する。戻り値が FALSE:blue] なら、その関数はないという意味なので、メッセージを表示して強制終了 exit する。
関数が存在すれば、その関数 $func を実行する。
PHPでは、関数名を代入した変数(ここでは $func)を指定して、関数を実行することができる。$func() のように書く。
さらにPHPでは、引数の個数を可変指定することができる。これを可変長引数リストと呼び、(...$vars) のように書く。たとえば、引数は ($var1) と1個だけでもいいし、($var1, $var2) や ($var1, $var2, $var3) のように2個でも3個でもいい。
引数は、配列 $vars の要素として代入されている。
ここでは、可変長引数リストをそのまま関数 $func() に渡し、その戻り値を返すようにした。
解説:指定したバージョン未満ならメッセージを表示して強制終了
88: /**
89: * PHP処理系が指定したバージョン未満ならメッセージを表示して強制終了する.
90: * @参考URL https://www.pahoo.org/e-soul/webtech/php01/php13-01.shtm
91: * @param string $version 基準バージョン(デフォルト値 8.0.0)
92: * @return bool TRUE:PHP5以上/FALSE:PHP5未満
93: */
94: function exitIfLessVersion($version='8.0.0') {
95: //PHP処理系のバージョンを取得する.
96: $phpver = execFunc('phpversion');
97: //PHP処理系のバージョンを比較する.
98: if (execFunc('version_compare', $phpver, $version, '<')) {
99: echo 'Sorry, this program requires PHP version higher than ' . $version . ' to work.';
100: exit(1);
101: }
102: }
前述のユーザー関数 execFunc を使って、組み込み関数 [phpversion:phpo_function] を呼び出し、PHP処理系のバージョンを変数 $phpver に代入する。
次に、ユーザー関数 execFunc を使って、組み込み関数 [version_compare:phpo_function] を呼び出し、バージョンの比較を行う。指定したバージョン未満ならメッセージを表示して強制終了する。
ここで、ユーザー関数 exitIfLessVersion の引数が ($version='8.0.0') となっていることに留意されたい。これは、引数 $version を省略したときに、自動的に '8.0.0' が代入されるデフォルト引数値という機能である。
解説:指定したバージョンを超えたらメッセージを表示して強制終了
104: /**
105: * PHP処理系が指定したバージョンを超えたらメッセージを表示して強制終了する.
106: * @参考URL https://www.pahoo.org/e-soul/webtech/php01/php13-01.shtm
107: * @param string $version 基準バージョン(デフォルト値 8.0.0)
108: * @return bool TRUE:PHP5以上/FALSE:PHP5未満
109: */
110: function exitIfExceedVersion($version='8.1.0') {
111: //PHP処理系のバージョンを取得する.
112: $phpver = execFunc('phpversion');
113: //PHP処理系のバージョンを比較する.
114: if (execFunc('version_compare', $phpver, $version, '>')) {
115: echo 'Sorry, this program requires PHP version less than ' . $version . ' to work.';
116: exit(1);
117: }
118: }
解説:メインプログラム
120: /**
121: * HTML BODYを作成する
122: * @param なし
123: * @return string HTML BODY
124: */
125: function makeCommonBody() {
126: $refere = REFERENCE;
127: $title = TITLE;
128: $version = '<span style="font-size:small;">' . date('Y/m/d版', filemtime(__FILE__)) . '</span>';
129: $width = WIDTH;
130:
131: //PHPのバージョン
132: $phpver = execFunc('phpversion');
133:
134: $body =<<< EOT
135: <body>
136: <h2>{$title} {$version}</h2>
137: <p>PHPバージョン {$phpver}</p>
138:
139: <div style="border-style:solid; border-width:1px; margin:20px 0px 0px 0px; padding:5px; width:{$width}px; font-size:small; overflow-wrap:break-word; word-break:break-all;">
140: ※参考サイト:<a href="{$refere}">{$refere}</a>
141: </div>
142: </body>
143:
144: EOT;
145: return $body;
146: }
148: // メイン・プログラム =======================================================
149: //PHPバージョン・チェック
150: exitIfLessVersion(MINUMUM_VERSION);
151: exitIfExceedVersion(MAXIMUM_VERSION);
152:
153: //表示HTML作成
154: $HtmlBody = makeCommonBody();
155:
156: //画面に表示する.
157: echo $HtmlHeader;
158: echo $HtmlBody;
159: echo $HtmlFooter;
参考サイト
- phpversion :PHP公式
- function_exists :PHP公式
- 可変長引数リスト:PHP公式
- デフォルト引数値:PHP公式
そこで今回は、プログラムの冒頭で、あらかじめ指定したバージョンの範囲になければプログラムを強制終了するプログラムを紹介する。あわせて、可変長引数リストやデフォルト引数値について学ぶ。