① 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。这样,输出的便是“第一个”。