Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.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 这是一次做两个相等陈述的正确方法吗?_Php_Equals - Fatal编程技术网

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");
}