PHP 三元运算符多语句

标签 php ternary-operator

你好,我有一段代码:

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/

相关文章:

javascript - 检查所有图表的数据并隐藏没有数据的图表

php - 使用 PHP 和 DOTNET 类访问 Windows 注册表

php - 只需要更新 php 复选框中选中的值

javascript - 需要AngularJS/Javascript三元运算符代码解释

c - 条件赋值的简写方式

php - 合并具有相同绑定(bind)参数的两个查询

c - 获取错误 "lvalue required as left operand of assignment"

c++ - C 与 C++ 中的三元运算符

java - 简化复杂的三元条件

php - 警告 : require_once(includes/EliteScript. php) [function.require-once]: 无法打开流: 中没有这样的文件或目录