在变量字符串中使用三元运算符

Use a ternary operator in a variables string

是否可以在同时检查变量的变量内部使用三元运算符,我不确定这是否是正确的解释方式,所以让我告诉你我的意思。

$drc_embed_vine =  '<iframe src="https://vine.co/v//embed/'.($vbulletin->options['drc_embed_vine_smpl']) ? simple : postcard.'" width="480" height="480" frameborder="0"></iframe>';

这个变量只是检查设置是打开还是关闭,它是一个返回 1 或零的布尔值

$vbulletin->options['drc_embed_vine_smpl']

但这是无用的信息,我只需要知道如何或是否可以在这里使用三元运算符。

基本上我正在尝试简化这个:

if ($vbulletin->options['drc_embed_vine_smpl']) {
    $drc_embed_vine =  '<iframe src="https://vine.co/v//embed/simple" width="480" height="480" frameborder="0"></iframe>';
  } else {
    $drc_embed_vine =  '<iframe src="https://vine.co/v//embed/postcard" width="480" height="480" frameborder="0"></iframe>';
  }

如果这是可能的,我做错了什么?

$drc_embed_vine=($vbulletin->options['drc_embed_vine_smpl'])?'<iframe src="https://vine.co/v//embed/simple" width="480" height="480" frameborder="0"></iframe>':'<iframe src="https://vine.co/v//embed/postcard" width="480" height="480" frameborder="0"></iframe>';

或者多加一些小括号

$drc_embed_vine='<iframe src="https://vine.co/v//embed/'.(($vbulletin->options['drc_embed_vine_smpl'])?'simple':'postcard')). width="480" height="480" frameborder="0">';

你必须把那些放在括号里。此外,您还缺少 simple 和 postcard 的引号:

$drc_embed_vine = '<iframe src="https://vine.co/v//embed/'.(($vbulletin->options['drc_embed_vine_smpl']) ? "simple" : "postcard").'" width="480" height="480" frameborder="0"></iframe>';
                                                             ^                                               ^          ^         ^