你好,我有一段代码:
if($request['txt_!'] != "") {
$randl1_1 = mt_rand(100000, 999999);
} else {
$randl1_1 = '';
}
当我将它转换为三元运算符时:
$randl1_1 = ($request['txt_1'] != "") ? mt_rand(100000, 999999) : '';
如果我在 if 中添加一些会怎样?喜欢,
if($request['txt_!'] != "") {
$randl1_1 = mt_rand(100000, 999999);
someFunction();
} else {
$randl1_1 = '';
}
在三元运算符中可能吗?
最佳答案
这是可能的,但它会使三元组的使用变得不那么有用,因为它会使它变得困惑(特别是如果你想将它保留在一行中)。如果您在表达式中将其作为 RHS,则其返回值也将分配给 $randl1_1
。
如果 someFunction()
返回了一些真实的东西,那么......
$randl1_1 = ($request['txt_1'] != "") ? someFunction() && mt_rand(100000, 999999) : '';
如果没有,您可以使用 ||
。但如您所见,这很丑陋。如果 someFunction()
依赖于 $randl1_1
,那么您的问题会更糟。 :)
在你的第二种情况下,我会使用你引用的更详细的例子。您希望您的代码能够清楚地向您自己和其他人传达其意图。
试图将所有东西硬塞进三元是一种不好的做法。
关于PHP 三元运算符多语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31736291/