在php变量中用条件运算符替换if语句

时间:2013-04-10 19:33:11

标签: php conditional-operator

我需要更改我的PHP代码: ($ a包含带有html标签的解析文本,我想要追加更多数据,检查是否存在视频链接,附加echo语句)

$cont = '<div>'.$a.'<br>.'
  if (!empty($a->find('object', 0)->data)){
    echo '<a target="_blank" href="'.$a->find('object', 0)->data.'">
    Play Video</a>&nbsp;&nbsp;';
  }
  if (!empty($a->find('object', 1)->data)){
    echo '<a target="_blank" href="'.$a->find('object', 1)->data.'">
    Play Video</a>&nbsp;&nbsp;';
  }
.'</div>';

我知道这是错的,所以我需要帮助实现比较运算符。类似的东西:

$cont = '<div>.'$a.'<br>'.
  ($a->find('object', 0)->data > 0 ? '<a target="_blank" 
  href="'.$a->find('object', 0)->data.'">Play Video</a>&nbsp;&nbsp;')
  ($a->find('object', 1)->data > 0 ? '<a target="_blank" 
  href="'.$a->find('object', 1)->data.'">Play Video</a>&nbsp;&nbsp;')
  .'</div>';

但是我收到语法错误“(”通过第一个$ a-&gt;查找。是否可以做这样的事情?

1 个答案:

答案 0 :(得分:1)

你必须添加分号引入的else部分:

$cont = '<div>'.$a.'<br>'.
  ($a->find('object', 0)->data > 0 ? '<a target="_blank" 
  href="'.$a->find('object', 0)->data.'">Play Video</a>&nbsp;&nbsp;':'').
  ($a->find('object', 1)->data > 0 ? '<a target="_blank" 
  href="'.$a->find('object', 1)->data.'">Play Video</a>&nbsp;&nbsp;':'') // :'' here
  .'</div>';