将PHP变量中的if语句替换为条件运算符


replace if statements by conditional operators in php variable

我需要改变我的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->查找。有可能这样做吗?

您必须添加由分号引入的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>';