【问题标题】:ternary operator in javascript when variable is empty当变量为空时,javascript中的三元运算符
【发布时间】:2017-07-30 08:04:25
【问题描述】:

我在 php $foo = get_field('foo') ?: null; 中使用了三元运算符,但我正在寻找 javascript 中的等价物。到目前为止,我已经尝试过var foo = <?php echo $foo; ?> || null;。但是由于在这种情况下<?php echo $foo; ?> 为空/空,因此控制台给了我错误Uncaught SyntaxError: Unexpected token ||,因为变量是var foo = || null;

在 javascript 中还有另一种使用三元运算符的方法吗?

【问题讨论】:

  • var foo = ('<?php echo $foo; ?>') ? '<?php echo $foo; ?>' : null; 没用?
  • 你的 JS 应该可以工作,当 $foonull 时,只需从 PHP 输出一个“假”值。
  • @smarber 问题似乎是PHP代码没有输出任何东西,所以JS仍然会出错。
  • 请注意<?php ... ?>周围的引号

标签: javascript php operator-keyword ternary


【解决方案1】:

您的问题与三元运算符无关,而是与 PHP 输出到 javascript。最安全的方法是:

var foo = <?php echo json_encode($foo); ?> || null ;

json_encode() 函数确保变量以 JS 理解的形式回显。

【讨论】:

    【解决方案2】:

    您需要从 php.ini 返回一个虚假值。您的代码几乎是正确的。它只是缺少它周围的引号。

    var foo = '<?php echo $foo; ?>' || null;
    console.log('foo', foo);   // null
    

    这是因为当 $foo 为空时,它将是var foo = '' || null; 由于'' 在 Javascript 中是虚假的,所以它会返回 null。

    【讨论】:

      猜你喜欢
      • 2012-12-19
      • 2022-10-18
      • 1970-01-01
      • 2015-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-07
      • 2020-04-29
      相关资源
      最近更新 更多