【问题标题】:How do I return string when using operators in php? [closed]在php中使用运算符时如何返回字符串? [关闭]
【发布时间】:2016-12-16 13:15:24
【问题描述】:

我知道在使用这样的运算符时可以回显值并执行函数:

function echoTadaa() {
    echo "taTaaa";
}
echo true && echoTadaa();

结果是: taTaaa

但是在使用运算符时是否可以将字符串(任何)值保存到变量中?

$var = true && 'tadaaa';
var_dump($var);

结果是: bool(true)

预期结果是: string(6) "taTaaa"

【问题讨论】:

  • 这是为了什么?
  • 这没有多大意义:布尔运算符的结果是布尔值,为什么会是字符串?为什么你希望它是一个字符串?
  • 我希望它是字符串,因为我不想写太多代码行。我知道三元运算符,但我们不能在我们的团队中使用它们。我们创建了自己的标准以使代码可读。这是一个笑话。我想在不使用三元运算符的情况下编写三元运算符。
  • @u_mulder 你为什么给我负面评价?严重吗?这是一个合法的问题。
  • 是什么让你觉得是我?

标签: php bash logical-operators


【解决方案1】:

你的意思是这样吗?

function echoTadaa() {
    return "taTaaa";
}
$str = true . echoTadaa();

https://3v4l.org/WFb0f

返回“1taTaaa”,其中 1 = true

【讨论】:

  • 这真的很酷。 echo true . echoTadaa(); 但我不能使用它。我想将 echoTadaa 的值保存到变量中。我不想马上附和它。
  • @Michal 现在它保存到 $str 。
  • 哇。但是当你将 true 更改为 false 时。它还将它保存到字符串中。
  • 你把我弄丢了...
  • 我很抱歉。 :D
【解决方案2】:

我真的不知道你为什么想要这个,但你可以这样做:

if(true && $a= "hello"){

}
var_dump($a);    //string(5) "hello"

如果满足条件,则进行分配。 但在这种情况下,您可以在 if 条件内分配 $a var..

您也可以使用三元运算符:

$a = true ? "yes" : "no";

在这里演示:https://3v4l.org/i6Hnf

这是一个笑话。我想在不使用三元运算符的情况下编写三元运算符。

你不能完全这样做:

$a = true && "something";
echo $a;

因为评估总是返回 bool 值,因此 var $a 将包含 bool,而不是你的字符串。

你可以做一些混淆来使代码看起来像这样工作 像这里解释:https://www.thc.org/root/phun/unmaintain.html

【讨论】:

  • 没错。我想在不使用三元运算符的情况下编写三元运算符。
猜你喜欢
  • 2013-06-26
  • 2013-08-03
  • 2012-08-30
  • 1970-01-01
  • 2019-05-12
  • 1970-01-01
  • 1970-01-01
  • 2016-09-05
  • 2018-05-13
相关资源
最近更新 更多