Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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_If Statement - Fatal编程技术网

Php 如果与你在一起

Php 如果与你在一起,php,if-statement,Php,If Statement,我可以做: if ($param3) { $id = $param3; } elseif ($param2) { $id = $param2; } else { $id = $param1; } 以简单的形式,如: $id = $param3 || $param2 || $param1; 不使用?: $param3 = NULL; $param2 = 1; $param1 = NULL; $id = $param3 || $param2 || $param1; p

我可以做:

if ($param3) {
    $id = $param3;
} elseif ($param2) {
    $id = $param2;
} else {
    $id = $param1;
}
以简单的形式,如:

$id = $param3 || $param2 || $param1;
不使用?:

$param3 = NULL;
$param2 = 1;
$param1 = NULL;

$id = $param3 || $param2 || $param1;

print($id);

似乎是一个错误的控件,tho,因为如果任何$paramN被测试且未定义,它将输出错误。请尝试注释$param3行。

不确定“简单表单”是什么意思。在PHP中,基本上有3种执行If-else控制结构的方法:
-否则,正常:但您不能使用它
-备选语法:
-三元组类似于“?:”,但不能使用它


所以,似乎您唯一的选择是替代语法。这在模板制作中特别有用。如果这对你不起作用,那么你的问题的答案是否定的,没有更多的方法来做“如果其他”了。

你可以通过以下方式来避免

($id=$param3)||($id=$param2)||($id=$param1)

为什么你会有这样一个奇怪的要求?为了避免长长的if/else列表。这样一个简单的任务应该是内联的。避免
不会避免长列表。这是if/else的常用快捷方式。尝试一些替代常用快捷方式的方法会使代码变得模糊,并使其更难维护。短代码永远不应该比可维护代码优先级更高。($id=$param3)| |($id=$param2)| |($id=$param1)仍然很容易理解,而且比if/else短得多。人们用SO来回答测验问题,不是吗?这不会把
$id
转换成布尔值吗?$id将变成布尔值。