phpcase
① php case 用法
Switch 語句
如果您希望有選擇地執行若干代碼塊之一,請使用 Switch 語句。
使用 Switch 語句可以避免冗長的 if..elseif..else 代碼塊。
語法
switch (expression)
{
case label1:
code to be executed if expression = label1;
break;
case label2:
code to be executed if expression = label2;
break;
default:
code to be executed
if expression is different
from both label1 and label2;
}
實例
工作原理:
對表達式(通常是變數)進行一次計算
把表達式的值與結構中 case 的值進行比較
如果存在匹配,則執行與 case 關聯的代碼
代碼執行後,break 語句阻止代碼跳入下一個 case 中繼續執行
如果沒有 case 為真,則使用 default 語句
<?php
switch ($x)
{
case 1:
echo "Number 1";
break;
case 2:
echo "Number 2";
break;
case 3:
echo "Number 3";
break;
default:
echo "No number between 1 and 3";
}
?>
</body>
</html>
② php switch 語句 case自動分值
date('w')返回星期中的第幾天,數字表示。0(表示星期天)到 6(表示星期六)
③ PHP里 switch case條件語句的問題
佩服樓主 很細心哪!
這個問題應該從PHP作為動態腳本語言說起:
動態語言的變數類型是隨存儲的變數而變化的,即變數類型是根據具體環境而進行變化的。
字元串"abc",從樓主的意思來看可能指確切字元串,但是對於PHP存儲的時候它是不能確定的,因為隨著語義的變化,其所起的作用也會變化
第一個case 0:,PHP腳本將常量0翻譯為確切的整數,與字元串比較大小時,需要將字元串轉換為整數。PHP腳本會將字元串abc,從十進制(默認)轉換為數字,但是abc很明顯不能代表十進制數,即轉換失敗,則PHP將結果置為0,如果將字元串表示為"0xabc",那麼PHP腳本能夠發現0x標識,將abc作為十六進制轉換,所以能夠得到abc標識的十六進制整數。
如果樓主學過C,可以做一個簡單比較:
C中的case必須是數字常量,而不能是字元串,就因為C是變數類型確定的,運行時不能將確定的變數按語義隨意轉換。而PHP可以,因為PHP語言是動態的,變數類型是動態的。
或者從PHP的例子中學習:
如果一個文件將111111字元串(不是數字)存儲到文件,然後從文件直接讀取到變數$a,如下語法就可以將$a作為整數計算:
0+$a
上述表達式得到的結果也可以作為動態語言的一個變現來看
④ 條件控制語句PHP有哪幾種
條件控制是指根據表達式的返回值為真(true或非0或非空)還是假(false或0或空)決定後續執行語句的關鍵字,包括
if,elseif,else 如
if(true){
echo'Yes';
}
if($n>0){
echo'Yes';
}else{
echo'No';
}
if($n%3>1){
echo2;
}elseif($n%3>0){//elseif可重復
echo1;
}else{
echo0;
}
以及 switch, case語句,如
switch($n%3){
case2:
echo2;
break;
case1:
echo1:
break;
default:
echo0;
break;
}
switch和if, elseif, else實際上功能相似,只是寫法不同。
while和do, while,for, foreach 是條件循環控制語句,就不舉例了。
另外三元操作符?:, 如 ($n > 0) ? echo 'True' : echo 'False'; 相當於if else的簡化版本。
⑤ PHP中當使用switch() case的時候,如果有幾個等價的case該怎麼寫
case:之後所跟的表達式即為入口條件,這里可以寫多個,或者排除方式。
樓上混亂了。舉例:
switch(……)
case: "1"
echo "a";
break;
case: "2"
echo "a"; // 這里是相同的,可以多條實現
break;
default: // 能用排除方式,這個效率較高
echo: "b"
break;
⑥ php 怎麼動態得到 swith 的 case 值
這有問題啊,
如果你是根據不同的值調用相同的函數,但是是傳遞不同的參數的話,沒必要這樣,
像問題中,
如果值為 'aa',調用logfns(),傳參 'aa',
不如直接logfns($var),值為什麼就傳什麼參數,
如果針對不同的值調用不同的方法的話,
直接這樣就可以的,
$a='aa';
switch($a){
case'aa':
logina($a);
break;
case'bb':
loginb($a);
break;
}
PS:你的switch缺少參數,
以上,
⑦ PHP 帶索引的數組寫成switch case條件應該怎麼寫
你好,switch要傳入的是一個變數,那麼數組中的 一個代指定索引的數組值 就是一個變數。或者,如果還是不明白。直接$val = $value[first], 然後switch($val)。就可以了。如果你想把一個數組都通過switch判斷,那要在數組遍歷里寫switch就可以了。
比如 foreach($value as $temp_val) {
switch( $temp_val) {
case "xxxxx";break;
}
}
就樣就可以了。
⑧ php switch case 問題
可以的,不過你寫錯了
$worknum = 5;
switch($worknum)
{
case $worknum<10:
echo $name = '小於10';
break;
case $worknum>10:
echo $name = '大於10';
break;
}
⑨ 使用PHP,應用switch……case分支語句來輸出當天為星期幾
switch(date('w'))
{
case 1:
echo '星期一';
break;
case 2:
echo '星期二';
break;
case 3:
echo '星期三';
break;
case 4:
echo '星期四';
break;
case 5:
echo '星期五';
break;
case 6:
echo '星期六';
break;
case 7:
echo '星期日';
break;
}
⑩ php switch case 求具體詳解,case裡面能加if語句
if 語句只有兩種判斷
你用CASE語句還要IF語句干什麼 多此一舉
萬一要用到可以考慮 三元。。。