简单的PHP问题

发布于 2024-11-30 05:31:34 字数 237 浏览 1 评论 0原文

我是速记条件语句的新手,我一生都无法弄清楚如何做到这一点,这是我的简单代码:

<?php

    function evolve_nav($vals) {

       echo '<'.$vals['type'] !== '' ? ''.$vals['type'].'' : 'darn''>';

    }

?>

有谁知道为什么这不返回任何内容并导致错误?

I'm new to shorthand conditional statements and I can't for the life of me work out how to do it, here's the simple code I have:

<?php

    function evolve_nav($vals) {

       echo '<'.$vals['type'] !== '' ? ''.$vals['type'].'' : 'darn''>';

    }

?>

Does anyone know why this doesn't return anything and results in an error?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

小情绪 2024-12-07 05:31:34

你只是忘记了一些括号:

function evolve_nav($vals) {
    echo '<'.(!empty($vals['type']) ? $vals['type'] : 'darn').'>';
}
evolve_nav(array('type' => 'foobar'));
evolve_nav(array('not' => 'showing'));

You just forgot some brackets:

function evolve_nav($vals) {
    echo '<'.(!empty($vals['type']) ? $vals['type'] : 'darn').'>';
}
evolve_nav(array('type' => 'foobar'));
evolve_nav(array('not' => 'showing'));
混吃等死 2024-12-07 05:31:34
echo '<' . ($vals['type'] !== '' ? $vals['type'] : 'darn') .'>';
echo '<' . ($vals['type'] !== '' ? $vals['type'] : 'darn') .'>';
勿挽旧人 2024-12-07 05:31:34
$descriptiveVariableName = $vals['type']!=='' ? $vals['type'] : 'darn';

// View code
echo "<$descriptiveVariableName>";
$descriptiveVariableName = $vals['type']!=='' ? $vals['type'] : 'darn';

// View code
echo "<$descriptiveVariableName>";
寄居者 2024-12-07 05:31:34
  • ''.$vals['type'].'' 是多余的,将其设为 $vals['type']
  • 'darn''>'< /code> 这是两个字符串文字,它们之间没有任何运算符(或任何东西) ->语法错误。

在这种情况下,我宁愿不使用字符串连接(即使用像 'xyz' . $a 这样的点运算符),而是“传递”多个参数来回显。

echo
  '<',
  ''!==$vals['type'] ? $vals['type'] : 'darn',
  '>';

或使用 printf

printf('<%s>', ''!==$vals['type'] ? $vals['type'] : 'darn');
  • ''.$vals['type'].'' is superfluous, make it $vals['type']
  • 'darn''>' those are two string literals without any operator (or anything) between them -> syntax error.

In this case I'd rather not use string concatenation (i.e. using the dot-operator like 'xyz' . $a ) but "pass" multiple parameters to echo.

echo
  '<',
  ''!==$vals['type'] ? $vals['type'] : 'darn',
  '>';

or using printf

printf('<%s>', ''!==$vals['type'] ? $vals['type'] : 'darn');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文