「PHP/Webアプリケーション向けの機能」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎3つの分岐構文: PHPには、if, switch, match の3つの分岐構文があります。
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
→‎switch: PHPには、C風のswitchがあり、フォールスルーの挙動などほとんど同じですが、case の式に定数式以外の式が使える他、文字列などの比較も「緩やかな比較」で行えます。
タグ: 2017年版ソースエディター
29 行
 
=== if ===
PHPには、C風のifがあります。<code>else if</code>の短縮構文があるほか、テキストに埋込むのに適した代替構文があります。
;コード例:<syntaxhighlight lang=php>
[https://paiza.io/projects/nkPCU7ofu6F1MVSsMZQvEg?language=perl 例]:<syntaxhighlight lang=php>
<?php
$n = NAN;
99 ⟶ 100行目:
 
=== switch ===
PHPには、C風のswitchがあり、フォールスルーの挙動などほとんど同じですが、case の式に定数式以外の式が使える他、文字列などの比較も「[[#緩やかな比較|緩やかな比較]]」で行えます。
;コード例:<syntaxhighlight lang=php>
;[https://paiza.io/projects/5pSKdJt_kRFiA7GMULV_6g?language=php 例]:<syntaxhighlight lang=php>
<?php
$s = "as";
switch ($s) {
case "abstract":
echo "KW_abstract", PHP_EOL;
break;
case "and":
echo "KW_and", PHP_EOL;
break;
case "as":
echo "KW_as", PHP_EOL;
break;
case "break":
echo "KW_break", PHP_EOL;
break;
default:
echo "Unknown";
}
echo PHP_EOL;
 
switch ($s) :
case "abstract":
echo "KW_abstract", PHP_EOL;
break;
case "and":
echo "KW_and", PHP_EOL;
break;
case "as":
echo "KW_as", PHP_EOL;
break;
case "break":
echo "KW_break", PHP_EOL;
break;
default:
echo "Unknown";
endswitch;
?>
 
<?php switch ($s) : ?>
<?php case "abstract":?>
<?= "KW_abstract", PHP_EOL;?>
<?php break;?>
<?php case "and":?>
<?= "KW_and", PHP_EOL;?>
<?php break;?>
<?php case "as":?>
<?= "KW_as", PHP_EOL;?>
<?php break;?>
<?php case "break":?>
<?= "KW_break", PHP_EOL;?>
<?php break;?>
<?php default:?>
<?= "Unknown";?>
<?php endswitch; ?>
</syntaxhighlight>
;コード例実行結果:<syntaxhighlight lang=phptext>
;コード例:</syntaxhighlight lang=php>
: C風のswitchで、もし<code>break</code>がないと次の<code>case</code>以降も実行します。
;基本構文:<syntaxhighlight lang=php>
switch ( 式 ) {
case 式1 : 文1
case 式2 : 文2
case 式n : 文n
default : 文
}
</syntaxhighlight>
;代替構文:<syntaxhighlight lang=php>
switch ( 式 ) :
case 式1 : 文1
case 式2 : 文2
case 式n : 文n
default : 文
endswitch ;
</syntaxhighlight>
;埋込構文:<syntaxhighlight lang=php>
<?php switch ( 式 ) : ?>
<?php case 式1 : ?>
テキスト1
<?php case 式2 : ?>
テキスト2
<?php case 式n : ?>
テキストn
<?php default:?>
テキスト
<?php endswitch; ?>
</syntaxhighlight>
 
=== match ===
PHPのmatchは、switchと似ていますが、文ではなく式なので値取れるほか、比較には「[[#厳密な比較|厳密な比較]]」が使われます。
;コード例:<syntaxhighlight lang=php>
</syntaxhighlight>