ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルでの switch ステートメントの使用法の概要

php_PHP チュートリアルでの switch ステートメントの使用法の概要

WBOY
WBOYオリジナル
2016-07-13 17:13:491064ブラウズ

この記事では、PHP での switch ステートメントの使い方と、条件が 0 の場合の switch ケースの処理方法を詳しく紹介します。詳しく知りたい学生は参照してください。

Switch ステートメント
複数のコード ブロックのうち 1 つを選択的に実行する場合は、Switch ステートメントを使用します。

Switch ステートメントを使用して、長い if..elseif..else ブロックを回避します。

文法

コードは次のとおりです コードをコピー
スイッチ(表情)
{
ケースラベル1:
式 = label1;
の場合に実行されるコード 休憩
ケースラベル2:
式 = label2;
の場合に実行されるコード 休憩
デフォルト:
実行されるコード
表現が違うと
label1 と label2 の両方から;
}


仕組み:

式 (通常は変数) の評価を実行します
式の値を構造体のケースの値と比較します
一致する場合は、ケースに関連付けられたコードを実行します
コードの実行後、break ステートメントにより、コードが次のケースにジャンプして実行を継続することが防止されます
どのケースにも当てはまらない場合は、デフォルトのステートメントを使用します

コードは次のとおりです コードをコピー

スイッチ ($cps_sign) {
ケース「yiqifa」:
ケース「成国」:
ケース「ロイキファ」:
ケース「lkt」:
ケース「ファンリ」:
ケース「qqfanli」:
ケース「ウェイイー」:
ケース「ヨイ」:
$sql = "sa_cps_list (`uv`,`s_time`,`cps`,`url`) VALUES ('{$uv}',{$timestamp},'{$cps_sign}','{$url} に挿入) ')";
echo $sql;exit();
mysql_query($sql);
休憩;
デフォルト:
休憩;
}


プログラムをよく見てみると、もしかしたらスイッチとケースに原因があるのでしょうか?そこで、DEMO テストを作成します。
//出力結果は: bool(true) bool(false) xxx

真実は、switch/case 構造では、case 値を比較するときに === の代わりに == が使用されていることがわかります。このように、空は 0 に等しく、受け取る結果は当然間違っています。
仕方ない、プログラムを変えるのは嫌だ。結局のところ、条件が複数あるときは、if を並べるよりも switch/case の方が見やすい。方法を見つける。ふふ。

コードは次のとおりです コードをコピー

var_dump(""==0); var_dump(""===0);

$エラー = '';

スイッチ ($errid) {
ケース0:
echo "xxx";
休憩;
デフォルト:
echo "yyy";
}

コードは次のとおりです コードをコピー

$結果 = '';
if(is_numeric($err_id) === false) {
$result .= 'ダウンタイムまたはタイムアウト、戻り値なし'; $result を返します;
}
スイッチ ($err_id) {
ケースxxx:
…………
}

問題は解決しました。まず戻り値が数値であるかどうかを確認し、数値でない場合は直接返します。

今後、switch/case 判定番号を書き込むときは、特に放蕩値 0 がある場合には注意が必要です

switch文とelseif文の比較

switch ステートメントでは、条件が 1 回評価されてから各ケースと比較されますが、elseif ステートメントでは、条件が再度評価されます。条件がより複雑である場合、または複数のループがある場合は、switch ステートメントを使用する方が高速です

http://www.bkjia.com/PHPjc/629108.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/629108.html技術記事この記事では、PHPのswitch文の使い方と、条件が0の場合のswitchケースの扱いについて詳しく紹介しています。詳しく知りたい学生は参考にしてください。ステートメントの切り替え ご希望であれば...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。