PHP宣言ステートメント
はじめに
宣言の構文 PHPのステートメントは、while、for、foreachなどの他のフロー制御構造に似ています。
構文
declare (directive) { statement1; statement2; . . }
ブロックの動作は、ディレクティブのタイプによって定義されます。宣言ステートメントでは、3種類のディレクティブを提供できます-目盛り 、エンコーディング およびstrict_types ディレクティブ。
ティックディレクティブ
ティックは、スクリプト内の特定の数のステートメントが実行されるときに発生する特別なイベントに付けられた名前です。これらのステートメントはPHPの内部にあり、スクリプト内のステートメントとほぼ同じです(条件式と引数式を除く。任意の関数は register_tick_functionによってtickイベントに関連付けることができます。 。登録された関数は、declareディレクティブで指定されたティック数の後に実行されます。
次の例では、declare構文のループが5回の反復を完了するたびに、myfunction()が実行されます。
例
<?php function myfunction(){ echo "Hello World\n"; } register_tick_function("myfunction"); declare (ticks=5){ for ($i=1; $i<=10; $i++){ echo $i."\n"; } } ?>
出力
上記のスクリプトをコマンドラインから実行すると、次の結果が生成されます-
1 2 3 4 5 Hello World 6 7 8 9 10 Hello World
PHPにはunregister_tick_function()もあります 関数とティックイベントの関連付けを削除するには
strict_typesディレクティブ
PHPは弱い型の言語であるため、特定の操作を実行するためにデータ型を適切に変換しようとします。 2つの整数引数を持つ関数があり、それらの加算を返し、いずれかの引数が呼び出し中にfloatとして指定された場合、PHPパーサーは自動的にfloatを整数に変換します。この強制が望ましくない場合は、 strict_types =1を指定できます。 コンストラクトの宣言
例
<?php //strict_types is 0 by default function myfunction(int $x, int $y){ return $x+$y; } echo "total=" . myfunction(1.99, 2.99); ?>
フロートパラメータは整数で強制され、加算を実行して次の結果を生成します-
出力
total=3
ただし、strict_types =1でdelcare構文を使用すると、強制が防止されます
例
<?php declare (strict_types=1); function myfunction(int $x, int $y){ return $x+$y; } echo "total=" . myfunction(1.99, 2.99); ?>
出力
これにより、次のエラーが発生します-
Fatal error: Uncaught TypeError: Argument 1 passed to myfunction() must be of the type integer, float given, called in line 7 and defined in C:\xampp\php\testscript.php:3
エンコーディングディレクティブ
宣言コンストラクトには、スクリプトのエンコード方式を指定できるEncodingディレクティブがあります
例
<?php declare(encoding='ISO-8859-1'); echo "This Script uses ISO-8859-1 encoding scheme"; ?>
-
HTMLをPHPの「if」ステートメントに埋め込むことはできますか?
はい、PHPを使用すると、HTMLを「if」ステートメント内に埋め込むことができます。以下はいくつかの方法です。 if条件の使用- <?php if($condition) : ?> <a href="website_name.com">it is displayed iff $condition is met</a> <?php endif; ?> ifおよびelseif条件の使用- <?php if($condition) : ?> <a href=
-
PHPでグローバル変数を宣言する方法は?
グローバル変数はプログラムのどの部分からでもアクセスできます。ただし、変更するには、変更する関数でグローバル変数をグローバルとして明示的に宣言する必要があります。これは、グローバルとして認識される変数の前にキーワードGLOBALを配置することで、便利なことに実現されます。 例 コードは次のとおりです。PHPでグローバル変数を宣言する方法を確認できます- <?php $val = 1; function display() { GLOBAL $val;