① php中switch()的問題
$cont=$_POST[textfield];
改成
if(!isset($_POST[textfield]))
die(0);
$cont=$_POST[textfield];
② 關於php的switch語句的問題!
switch($RX_TYPE)
{
case"text":
$result=$this->receiveText($postObj);
break;
case"voice":
$result1=$this->receiveText1($postObj);
$result2=$this->receiveText2($postObj);//你為什麼不給他加上一個調用的方法運行完1運行2這樣不可以嗎我不懂。。。
break;
case"event":
$resultStr=$this->receiveEvent($postObj);
break;
default:
$result="unknownmsgtype:".$RX_TYPE;
break;
}
③ thinkPHP 3.2 模板賦值中嵌套switch... case 時,value值為什麼不能用配置裡面的值
正常情況下switch語句中的value是可以使用變數的。
可以先調試一下代碼,檢查一下能否正常輸出配置中的變數值,然後再檢查switch開關語句,break的位置是否正確,防止變數值被覆蓋了。如果還是無法排查問題,再檢查一下變數值與你配置的值是否相等,注意變數類型。
④ thinkphp volist switch嵌套錯誤
<case value="1" break="1">可以試試把vo.code寫成vo['code']這種形式
tp現在在標簽嵌套的出錯挺多的,數組寫法有時候能解決
⑤ 小菜鳥請教個關於PHP的switch語句的問題
重復問的呀?
&lt;?php
$i = 2142344;
$aa = '
$bb = '
$out = strtr(strval($i),$aa,$bb);
echo $out;
echo '&lt;br&gt;'
$tmp = str_split($out,2);
$out = implode(',',$tmp);
echo $out;
?&gt;
結果:
1121222
11,21,22,2
核心的幾個函數解釋:
strtr 將對應的字元串一一對應替換,不用循環判斷
str_split 將字元串分隔為數組,第二個參數為分隔長度,默認為1
implode 將數組級聯成字元串,第一個參數是級聯符
根據你的要求,還是有一些東西要修改。
112122 應該要生成 11,12,21,12,22五個數吧?
$a = '
$t = str_split($a);
$oo = ''
for($i=0;$i<count($t)-1;$i++) {
$oo .= $t[$i].$t[$i+1].','
}
echo $oo;
這樣應該就是最終的答案了。
⑥ 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正則表達式結合switch輸出的例子
<?php
header ( "Content-Type: text/html; charset=UTF-8" );
$x = "";
if(!empty($_GET['action'])){
$x = $_GET['action'];
}
switch ($x){
case "email":
$email_address = $_POST["email_address"];
$pattern = "/^([0-9A-Za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]{2,3}(\\.[a-z]{2})?)$/i";
// $pattern = "/^([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i";
if ( preg_match( $pattern, $email_address ) ){
$reply1 = "您輸入的電子郵件地址合法<br /><br />\n";
$user_name = preg_replace( $pattern ,"$1", $email_address );
$domain_name = preg_replace( $pattern ,"$2", $email_address );
$reply1 .= "用戶名:".$user_name."<br />\n";
$reply1 .= "域名:".$domain_name."<br />\n\n";
}
⑧ thinkphp switch標簽嵌套問題
試試IF標簽
⑨ php中switch語句看下什麼意思
由於if
語句只有兩個分支可供選擇,而實際問題中常常需要用到多分支的選擇。
這就需要用到switch語句,switch
語句是多分支選擇語句,用來實現多分支選擇結構,它的一般形式
如下:
switch
(
e)
{
case
c1
:s1
;
case
c2
:s2
;
⋯
case
cn
:sn
;
default
:sn
+
1
;
}
⑩ 對於php中的switch語句不太懂,如下:
在此例中,2確實是匹配2,但是,2同時也是一個非零值(布爾值為true)。PHP在進行條件判斷時,會將任何類型的值自動轉換為布爾值(true和false),所以,2同時也匹配true。匹配完畢之後,這里有一個break,於是不再往下執行,直接跳出這個switch。這樣,輸出的便是「第一個」。