PHP:switch()默认为所有?

PHP:switch()默认为所有?,php,Php,我有这个: case true: echo '<textarea rows="2" cols="35" name="message_friend" id="message_friend"></textarea>'; break; default: echo '<textarea rows="2" cols="35" name="message_friend" id="message_friend" readonly="readon

我有这个:

case true:

    echo '<textarea rows="2" cols="35" name="message_friend" id="message_friend"></textarea>';
    break;

    default:
    echo '<textarea rows="2" cols="35" name="message_friend" id="message_friend" readonly="readonly"></textarea>';
    break;
我尝试回显函数,它返回err2而不是true,那么为什么它会运行true呢

我还尝试了if/else

if(check_friend_state($showU["id"], 'friend') == true){

echo '<textarea rows="2" cols="35" name="message_friend" id="message_friend"></textarea>';
}else{
echo '<textarea rows="2" cols="35" name="message_friend" id="message_friend" readonly="readonly"></textarea>';
}

这有点草率,但是
$return
最终是
check\u friend\u state()
返回的值

echo';
如果
check\u friend\u state($showU[“id”],'friend')
返回除
false
0
以外的任何内容,则该值为true


为什么要设置开关()?似乎switch()在PHP上更为密集,因为它需要更多的语法,因此如果过度使用,实际上可能会产生负面影响。虽然这是一个猜测,没有事实根据。

这有点草率,但
$return
最终是
check\u friend\u state()返回的值。

echo';
如果
check\u friend\u state($showU[“id”],'friend')
返回除
false
0
以外的任何内容,则该值为true


为什么要设置开关()?似乎switch()在PHP上更为密集,因为它需要更多的语法,因此如果过度使用,实际上可能会产生负面影响。虽然这是一个猜测,没有事实根据。

在这些情况下,为了代码的简洁性,三元if语句工作得更好。。。这样做的好处是只需处理一次呈现的HTML。但这可能是一个更个人的偏好

   $readOnly=check_friend_state($showU["id"], 'friend')?'readonly="readonly"':'';
   echo '<textarea rows="2" cols="35" name="message_friend" id="message_friend" '.$readOnly.'></textarea>';
$readOnly=check_friend_state($showU[“id”],'friend')?'readOnly=“readOnly”:'';
回声';

在这些情况下,为了代码的简洁性,IMHO三元if语句工作得更好。。。这样做的好处是只需处理一次呈现的HTML。但这可能是一个更个人的偏好

   $readOnly=check_friend_state($showU["id"], 'friend')?'readonly="readonly"':'';
   echo '<textarea rows="2" cols="35" name="message_friend" id="message_friend" '.$readOnly.'></textarea>';
$readOnly=check_friend_state($showU[“id”],'friend')?'readOnly=“readOnly”:'';
回声';

这是PHP的一个工件。数字!=0和非空字符串在转换为布尔值时被视为
true


您可以通过使用
==
而不是
=

来防止这种情况。这是PHP为您准备的工件。数字!=0和非空字符串在转换为布尔值时被视为
true


您可以通过使用
==
而不是
=

来防止这种情况。这是@Webnet答案的修改版本

echo '<textarea rows="2" cols="35" name="message_friend" id="message_friend"';
if(check_friend_state($showU["id"], 'friend') !== true) {
    echo 'readonly="readonly"';
}
echo '></textarea>';
在那个虚构的例子中,
is_friend
函数只返回一个布尔值(true/false)。您可以使用其他函数来处理以前执行的任何操作

旁注#2
看看您的函数,您似乎已经对抛出异常的概念摸索了一半。尝试在这里阅读:

这是@Webnet答案的修改版本

echo '<textarea rows="2" cols="35" name="message_friend" id="message_friend"';
if(check_friend_state($showU["id"], 'friend') !== true) {
    echo 'readonly="readonly"';
}
echo '></textarea>';
在那个虚构的例子中,
is_friend
函数只返回一个布尔值(true/false)。您可以使用其他函数来处理以前执行的任何操作

旁注#2
看看您的函数,您似乎已经对抛出异常的概念摸索了一半。尝试在这里阅读:

开关((检查朋友状态($showU[“id”],'friend')==true))
。。。哇,没人问你的意见,对不起,我对你的评论太生疏了likings@Karem如果你是一个新手,并且你意识到这一点,那么就从开始。我的本意不是要冒犯你,我真的很惊讶你使用了
案例
结构。此外,没有人需要征求任何意见。这是一个开放的网站。@ AlinPurcaru,你真的需要把这个惊喜用词……@卡雷姆,我认为我的行为是正当的。如果你觉得他们对这篇文章的价值没有贡献,那么欢迎你标记评论。
切换((检查朋友状态($showU[“id”],'friend')==true))
。。。哇,没人问你的意见,对不起,我对你的评论太生疏了likings@Karem如果你是一个新手,并且你意识到这一点,那么就从开始。我的本意不是要冒犯你,我真的很惊讶你使用了
案例
结构。此外,没有人需要征求任何意见。这是一个开放的网站。@ AlinPurcaru,你真的需要把这个惊喜用词……@卡雷姆,我认为我的行为是正当的。如果你觉得他们对这篇文章的价值没有贡献,那么欢迎你标记评论。你是说switch()更有效吗?这是怎么回事?@Webnet开关在检查多个情况时效率更高,因为选中的表达式只计算一次。但在这种特殊情况下,使用
开关
if/else
结构之间没有任何区别,因为无论哪种方法都只需要一次评估^^^@Webnet的结果还是一样的,它认为它的真实性还是一样的。也许我可以对返回err1、err2等的函数做些什么?我无法在所有错误上返回0,因为我无法处理它是哪一个错误(在我的进一步编码中)@Karem如果您的函数返回多个值类型(布尔值、整数、字符串),那么您应该集中精力修复函数,使其仅返回一种类型。否则,无论你走到哪里,你都会进行口袋妖怪式的编码。你是说switch()更有效吗?这是怎么回事?@Webnet开关在检查多个情况时效率更高,因为选中的表达式只计算一次。但在这种特殊情况下,使用
开关
if/else
结构之间没有任何区别,因为无论哪种方法都只需要一次评估^^^@Webnet的结果还是一样的,它认为它的真实性还是一样的。也许我可以对返回err1、err2等的函数做些什么?我无法在所有错误上返回0,因为我无法处理它是哪一个错误(在我的进一步编码中)@Karem如果您的函数返回多个值类型(布尔值、整数、字符串),那么您应该集中精力修复函数,使其仅返回一种类型。否则你就要做口袋妖怪式的密码了
echo '<textarea rows="2" cols="35" name="message_friend" id="message_friend"';
if(check_friend_state($showU["id"], 'friend') !== true) {
    echo 'readonly="readonly"';
}
echo '></textarea>';
echo '<textarea rows="2" cols="35" name="message_friend" id="message_friend"';
if(!is_friend($showU["id"])) {
    echo 'readonly="readonly"';
}
echo '></textarea>';