Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&&;和| |条件在PHP中的单个IF条件中_Php_Oop_Conditional Statements - Fatal编程技术网

&&;和| |条件在PHP中的单个IF条件中

&&;和| |条件在PHP中的单个IF条件中,php,oop,conditional-statements,Php,Oop,Conditional Statements,我想检查$a的长度是0还是不是0,然后检查它是否是PHP中单个if语句中的数值。我试过了,但没用 $a = '23bc'; if((strlen($a)===0 || (strlen($a)>0 && ctype_digit($a))) ) { echo 'Good to Go'; } else { echo 'Bad to Go'; } 我不想在这里应用嵌套条件。是否可以在单个IF语句中执行此操作 我在这里找到了这个问题,但这并没有回答我的问题。如果您能

我想检查$a的长度是0还是不是0,然后检查它是否是PHP中单个if语句中的数值。我试过了,但没用

$a = '23bc';
if((strlen($a)===0 || (strlen($a)>0 && ctype_digit($a))) )
{
    echo 'Good to Go';
}
else
{
    echo 'Bad to Go';
}
我不想在这里应用嵌套条件。是否可以在单个IF语句中执行此操作


我在这里找到了这个问题,但这并没有回答我的问题。如果您能知道您的脚本除了在涉及空字符串或数字字符串的if条件中使用一行之外,还想实现什么,那就太好了。使用cytpe_digit()时,每个字符必须作为数字计算,才能作为数字字符串。由于“bc”部分的原因,“23bc”的结果为假

脚本的一个问题是,我们不知道哪种情况会导致真正的错误。一个或其他条件可能为真,也可能两者都为假。
请参阅演示:

您可以使用三元表达式重写代码,使其具有消除if-else构造的一行程序,如下所示:

<?php
$a = '23bc';

if( strlen( $a ) != 0) {
    echo ctype_digit( $a )? "Good to Go\n"  :  "Bad to Go\n";
}  

那么你想检查$a是否等于0或者$a是数字的吗?不,我想检查$a的长度是否为0或者它是否为0,然后检查它是否为数字对我来说似乎有效:“很糟糕”,因为它的长度大于0,但不全是数字“我尝试了这个,但不起作用”到底什么不起作用?你得到了什么?你期望得到什么(以及为什么)?是的,那么如果$a为空,那么它应该显示出良好的状态
<?php
echo ( !strlen($a) || ctype_digit($a) )? "Good to Go\n"  :  "Bad to Go\n";