サーチ…


制御構造の代替構文

PHPはifwhileforforeachswitch ifいくつかの制御構造の代替構文を提供します。

(通常の構文と比較した場合、差が開くブレースがコロンによって置換されていること、である: )と閉じブレースがで置き換えられているendif; endwhile;endfor;endforeach; 、またはendswitch;それぞれ、個々の例については、制御構造の代替構文に関するトピックを参照してください。

if ($a == 42):
    echo "The answer to life, the universe and everything is 42.";
endif;

短い構文を使用した複数のelseif

if ($a == 5):
    echo "a equals 5";
elseif ($a == 6):
    echo "a equals 6";
else:
    echo "a is neither 5 nor 6";
endif;

PHPマニュアル - 制御構造 - 代替構文

while

whileループは、指定された条件が真である限り、コードのブロックを反復処理します。

$i = 1;
while ($i < 10) {
    echo $i;
    $i++;
}

出力: 123456789

詳細については、ループのトピックを参照してください。

一方を行います

do-whileループは、指定された条件が真である限り、最初にすべての場合に一度コードブロックを実行し、そのコードブロックを反復処理します。

$i = 0;
do {
    $i++;
    echo $i;
} while ($i < 10);

Output: `12345678910`

詳細については、ループのトピックを参照してください。

後藤

goto演算子を使用すると、プログラム内の別のセクションにジャンプできます。 PHP 5.3以降で利用可能です。

goto命令は、gotoの後ろに目的のラベル( goto MyLabel;

ジャンプのターゲットは、コロンが続くラベルで指定しますMyLabel:

この例では、 Hello World!

<?php
goto MyLabel;
echo 'This text will be skipped, because of the jump.';
 
MyLabel:
echo 'Hello World!';
?>

宣言する

declareは、コードブロックの実行指令を設定するために使用されます。

次の指令が認められています。

たとえば、ティックを1に設定します。

declare(ticks=1);

厳密な型モードを有効にするには、 declareステートメントをstrict_types宣言とともに使用します。

declare(strict_types=1);

その他の場合

上記の例のif文は、条件が満たされたときにコードフラグメントを実行できるようにします。あなたは、コードの断片を実行したい場合は、条件が満たされないときは、延長ifelse

if ($a > $b) {
  echo "a is greater than b";
} else {
  echo "a is NOT greater than b";
}

PHPマニュアル - 構造体の制御 - その他

if-elseの簡略構文としての三項演算子

三項演算子は、真であるか否かに基づいて何かを評価する。これは比較演算子であり、単純なif-else条件を短い形式で表現するためによく使用されます。それは条件をすばやくテストすることを可能にし、しばしば複数行のif文を置き換え、コードをよりコンパクトにします。

上の例は、三項式と変数の値を使った例です: $a=1; $b=2;

echo ($a > $b) ? "a is greater than b" : "a is NOT greater than b";

出力: a is NOT greater than b

include&require

要求する

requireincludeに似ていinclude 、エラー時に致命的なE_COMPILE_ERRORレベルのエラーが生成される点がE_COMPILE_ERRORます。 requireが失敗すると、スクリプトが停止します。 include失敗すると、スクリプトを停止せず、 E_WARNINGだけをE_WARNINGます。

require 'file.php';

PHP Manual - コントロール構造 - 必要

含める

includeステートメントには、ファイルが含まれ、評価されます。

./variables.php

$a = 'Hello World!';

/ main.php`

include 'variables.php';
echo $a;
// Output: `Hello World!`

インクルードされたファイルは、指定されたスコープ内で定義された変数の量と内容を変更しているため、このアプローチはコードの匂いとみなされるので注意してください。


また、値を返すfileをincludeすることもできます。これは、構成配列の処理に非常に役立ちます。

configuration.php

<?php 
return [
    'dbname' => 'my db',
    'user' => 'admin',
    'pass' => 'password',
];

main.php

<?php
$config = include 'configuration.php';

この方法は、インクルードされたファイルが変更された変数や追加された変数で現在のスコープを汚染するのを防ぎます。

PHPマニュアル - 制御構造 - インクルード


include&requireは、ファイルによって何かが返されたときに変数に値を代入するためにも使用できます。

例:

include1.phpファイル:

<?php
    $a = "This is to be returned";

    return $a;
?>

index.phpファイル:

    $value = include 'include1.php';
   // Here, $value = "This is to be returned"

リターン

returnステートメントはプログラムコントロールを呼び出し関数に返します。

関数内からreturnが呼び出されると、現在の関数の実行が終了します。

function returnEndsFunctions()
{
   echo 'This is executed';
   return;
   echo 'This is not executed.';
}

returnEndsFunctions();を実行するとreturnEndsFunctions(); This is executedます。

引数がandである関数の中からreturnが呼び出されると、現在の関数の実行が終了し、引数の値が呼び出し元の関数に返されます。

にとって

forループは、通常、指定した回数繰り返したいコードがある場合に使用されます。

for ($i = 1; $i < 10; $i++) {
    echo $i;
}

出力: 123456789

詳細については、ループのトピックを参照してください。

foreach

foreachは構造体であり、配列やオブジェクトを簡単に反復処理できます。

$array = [1, 2, 3];
foreach ($array as $value) {
    echo $value;
}

出力: 123

オブジェクトにforeachループを使用するには、 Iteratorインタフェースを実装する必要があります。

連想配列を反復処理するとき:

$array = ['color'=>'red']; 

foreach($array as $key => $value){
    echo $key . ': ' . $value; 
}

出力: color: red

詳細については、ループのトピックを参照してください。

elseif else if

elseif

elseififelse結合しelseif文が拡張され、元のif式が満たされない場合に別の文を実行します。しかし、代替式は、 elseif条件式が満たされたときにのみ実行されます。

次のコードは、 "aがbより大きい"、 "aがbと等しい"または "aがbより小さい"のいずれかを表示します。

if ($a > $b) {
    echo "a is bigger than b";
} elseif ($a == $b) {
    echo "a is equal to b";
} else {
    echo "a is smaller than b";
}

いくつかのelseif文

同じif文内で複数のelseif文を使用できます。

if ($a == 1) {
    echo "a is One";
} elseif ($a == 2) {
    echo "a is Two";
} elseif ($a == 3) {
    echo "a is Three";
} else {
    echo "a is not One, not Two nor Three";
}

if

if構文は、コードフラグメントの条件付き実行を可能にします。

if ($a > $b) {
  echo "a is bigger than b";
}

PHP Manual - コントロール構造 - If

スイッチ

switch構造は、一連のif文と同じ機能を実行しますが、より少ないコード行でそのジョブを実行できます。 switchステートメントで定義されているswitchに、テストされる値は、一致が見つかるまでそのcaseステートメントの値と等しいかどうか比較され、そのブロック内のコードが実行されます。一致するcase文が見つからないcaseは、 defaultブロック内のコードが存在する場合は実行されます。

case文またはdefault文の各コードブロックは、 break文で終わる必要がありdefault 。これにより、 switch構造の実行が停止され、その直後にコードの実行が継続されます。 break文が省略された場合、 一致するものがなくても次のcase文のコードが実行されます。これは、 breakステートメントを忘れると予期しないコードが実行される可能性がありますが、複数のcaseステートメントで同じコードを共有する必要があるcaseも便利です。

switch ($colour) {
case "red":
    echo "the colour is red";
    break;
case "green":
case "blue":
    echo "the colour is green or blue";
    break;
case "yellow":
    echo "the colour is yellow";
    // note missing break, the next block will also be executed
case "black":
    echo "the colour is black";
    break;
default:
    echo "the colour is something else";
    break;
}

固定値のテストに加えて、 switchステートメントにブール値を指定し、 caseステートメントに式を指定することで、動的ステートメントをテストするように構成を強制することもできます。 最初の一致する値が使用されているので、次のコードは "100以上"を出力することに注意してください。

$i = 1048;
switch (true) {
case ($i > 0):
    echo "more than 0";
    break;
case ($i > 100):
    echo "more than 100";
    break;
case ($i > 1000):
    echo "more than 1000";
    break;
}

switch構造体の使用中にタイピングが緩和される可能性のある問題については、 Switch Surprisesを参照してください。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow