Php 这是一次做两个相等陈述的正确方法吗?
我在做同样的陈述,但它不起作用Php 这是一次做两个相等陈述的正确方法吗?,php,equals,Php,Equals,我在做同样的陈述,但它不起作用 if ( $1 === $one ) && ( $2 == $two ) { require("one.php"); } elseIF($2 === $two) { require("two.php"); }else{ require("three.php"); die(""); } 这是我收到的错误信息: PHP Parse error: syntax error, unexpected T_BOOLE
if ( $1 === $one ) && ( $2 == $two ) {
require("one.php");
} elseIF($2 === $two) {
require("two.php");
}else{
require("three.php");
die("");
}
这是我收到的错误信息:
PHP Parse error: syntax error, unexpected T_BOOLEAN_AND
应该是:
if (( $1 === $one ) && ( $2 == $two )) {
require("one.php");
} elseIF($2 === $two) {
require("two.php");
} else {
require("three.php");
die("");
}
您需要执行以下操作:
if (( $1 === $one ) && ( $2 == $two )) {
或:
请记住,将其视为一个代数,在括号中,需要将“IF@语句作为一个整体进行求值,并将所有要求值的条件封装在(and)中。根据您希望进行评估的复杂程度(公式化地构建),您可以将后续标准括在括号中,例如
x || y
x && y
x && (y || z)
x || (y && z)
您需要将第一个IF语句中的两个条件用附加括号括起来:
if (( $1 === $one ) && ( $2 == $two ))
不,问题在第一行 做:
如果($1==$1&&$2==$2){…
“if”条件始终在单个“()”内。您可以嵌套它们,但if条件在第一个条件关闭后停止。因此if($1==$1)和($2=$2))也是有效的,但在这种情况下,除非您发现它提高了可读性,否则不需要嵌套它
对这方面的一些批评:
这些变量名非常糟糕,因为它们不能解释发生了什么。文件名也是如此
还有,请在上面放糖,修正你的缩进(看看draevor的答案是否有合适的缩进)。立即习惯正确的缩进,因为以后习惯改变的做法只会变得更加困难。当其他人开始使用您的代码时,如果您继续这样缩进,他们会诅咒您的名字。这对可读性非常重要。谢谢!如果$2是emp,我还可以介绍一种给用户错误的方法吗ty…它的工作方式也是我在第二个变量中将==改为===那也行吗?它的工作方式是。假设$2从来都不是空的,这对你来说是可行的,但是如果两个变量都是空的,那么你就需要使用empty()函数。缩进意味着解释你在做什么?@AAA:不,缩进是空白(空格或制表符)在每一行之前放置的。先看一下代码,然后看MasterCasim,然后看draevor。注意它们是如何将if/else语句下的内容的行向内向右移动的。代数是一个很好的方法,因为你也可以这样做(尽管很少需要)如果通过添加条件结果并测试整个if($a==$b)+($a==$c)+($a==$d)>=2)来满足这些条件中的N个
,询问a是否至少等于这些其他值中的2个。
if (( $1 === $one ) && ( $2 == $two ))
if (( $1 === $one ) && ( $2 == $two )) {
require "one.php";
} elseif ($2 === $two) {
require "two.php";
} else {
require "three.php";
die("Some message");
}