Php 如何在三元运算符中执行函数

Php 如何在三元运算符中执行函数,php,html,Php,Html,我想通过一些ifelse语句创建一个导航列表。以下是我打算做的: $v='p'; ...... ...... some codes go here ...... $menu1 ='<li><a href="#">Market</a>'.$v==='p' ? set_submenu('market'):''.'</li>'; ......... ........ echo $menu1; 然后显示带有子菜单的菜单。但是对于更干净的代码,我想用单行

我想通过一些
if
else
语句创建一个导航列表。以下是我打算做的:

$v='p';
......
......
some codes go here
......
$menu1 ='<li><a href="#">Market</a>'.$v==='p' ? set_submenu('market'):''.'</li>';
.........
........

echo $menu1;
然后显示带有子菜单的菜单。但是对于更干净的代码,我想用单行代码。如何在一行代码中连接这些内容

试试这个:

$menu1 = '<li><a href="#">Market</a>' . ($v === 'p' ? set_submenu('market') : '') . '</li>';
$menu1='
  • '。($v==“p”?设置子菜单(“市场”):“”)';
  • 如果您没有使用正确的三元语法,则条件周围需要括号。我测试了下面的程序,它成功了

    $menu1 ='<li><a href="#">Market</a>'.($v == 'p') ? set_submenu('market'):''.'</li>';
    
    $menu1='
  • 。($v=='p')?set_子菜单(“市场”):“.”
  • ”;
    在代码的何处或何处?让我们仔细想想:在三个单独的步骤中创建$menu1字符串是有效的,对吗?为什么你认为它的工作原理不同于在一个大语句中完成所有工作?我不这么认为,我知道这是由于我的编码错误。
    $menu1 ='<li><a href="#">Market</a>'.($v == 'p') ? set_submenu('market'):''.'</li>';