【问题标题】:Issue with isset() inside nested ternary operator [duplicate]嵌套三元运算符中的isset()问题[重复]
【发布时间】:2017-01-14 19:56:00
【问题描述】:

我正在尝试使用if-else 登录来显示输入字段值,并且我想使用单行ternary 运算符,但它总是返回错误。但是,如果我使用 if-else 它工作正常。我的代码是:

工作正常

if(isset($_COOKIE['m_name'])){
    echo $_COOKIE['m_name']; 
}else if(isset($this->userdata)){
    echo $this->userdata[0]->first_name;
}else{
    echo 'No Data';
}

退货通知一律

echo isset($_COOKIE['m_name'])? $_COOKIE['m_name']: isset($this->userdata)?$this->userdata[0]->first_name:'No Value';

错误:

注意:尝试在线获取/home/....中非对象的属性...

我不知道我错过了什么?

我们将不胜感激。

【问题讨论】:

  • 我更喜欢没有多个组合三元运算符的方式,因为它的可读性更好。
  • 谢谢@Alex2php!但我必须解决这个问题。
  • 谢谢@Alex2php!问题解决了。现在我会按照你的方法。

标签: php ternary-operator


【解决方案1】:

我不确定,但我认为应该是

echo (isset($_COOKIE['m_name'])? $_COOKIE['m_name']: (isset($this->userdata)?$this->userdata[0]->first_name:'No Value'));

【讨论】:

  • 谢谢@Dmnik! :) 它工作正常。你教我我所缺少的基础知识。保持。 SO的最佳开始。快乐编码:)
猜你喜欢
  • 2012-02-02
  • 2011-09-07
  • 2011-10-29
  • 1970-01-01
  • 2014-11-03
  • 1970-01-01
相关资源
最近更新 更多