PHP字符串中的三元运算符

Posted

技术标签:

【中文标题】PHP字符串中的三元运算符【英文标题】:Ternary Operator Inside PHP String 【发布时间】:2012-12-19 08:54:19 【问题描述】:

我想在字符串中计算一个简单的三元运算符,但似乎找不到正确的语法。

我的代码如下所示:

foreach ($this->team_bumpbox as $index=>$member) 
    echo ".... class='((1) ? abc : def)'>....";

但我似乎无法让它正常工作。关于如何实现这一点的任何想法?

【问题讨论】:

字符串连接 如果你想使用任意表达式。在双引号字符串中,只有简单的变量和数组语法或变量表达式有效。你这里都没有。 大概一个真实的例子没有“1”作为条件参数? 是的,真实的例子会有一个真实的表达。只是好奇,因为语法看起来非常不错 imo :) 究竟 php 应该如何知道字符串中的内容实际上是 php 代码?这是的工作来告诉它。 【参考方案1】:

嗯,你可以做到这一点:

$if = function($test, $true, $false)

  return $test ? $true : $false;
;

echo "class='$if(true, 'abc', 'def')'";

我会让你决定是纯粹的优雅还是纯粹的疯狂。但是请注意,与真正的条件运算符不同的是,函数的两个参数总是被计算。

【讨论】:

【参考方案2】:

你不能在字符串内部这样做,就其本身而言。您需要点连接。像这样的:

echo ".... class='" . (1 ? "abc" : "def") . "'>....";

【讨论】:

以上是关于PHP字符串中的三元运算符的主要内容,如果未能解决你的问题,请参考以下文章

php中运用三元运算符比较三个数大小并从大到小输出

ReactJs 卡头中的三元运算符

JavaScript 速记三元运算符

三元运算符如何比较 JavaScript 中的字符和数字?

python学习第十九天三元运算符与php语言区别

视图主体中的 swiftui 三元运算符