将PHP中不存在的变量传递给JavaScript时的语法错误

时间:2018-10-05 19:14:41

标签: javascript php error-handling

我有以下代码将变量(EmployeeID)从PHP传递到JavaScript:

EmployeeID= <?php echo "$EmployeeID"?>;

问题是PHP中的变量EmployeeID可能不存在,在这种情况下,运行JavaScript代码后,会收到错误消息

  

未捕获的SyntaxError:意外令牌

当我在开发工具中查看源代码时,可以看到以下内容:

EmployeeID = ;

处理此错误的最佳方法是什么?我尝试过

if (EmployeeID == null){
    EmployeeID = "0"; //0 - stands for generic variable in case if EmployeeID doesn't exist
}

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:2)

此php代码输出$EmployeeID0的值,因此当$EmployeeID的值为假时,您的js var保持为0:

var EmployeeID = <?php echo $EmployeeID ? $EmployeeID : 0 ?>;

答案 1 :(得分:1)

如第一个答案所述,熟练的if是解决这种情况的好方法

<?php echo $EmployeeID ? $EmployeeID : 0 ?>

但是在这种情况下,如果0的输出将是$EmployeeID == 0, null, false, '',在这种情况下,我强烈建议您使用方法“ isset()”,因为可能未声明变量(例如如果employeeID实际上是0)

<?php 
  if(isset($EmployeeID)){
       // Do something here
  } else {
       // whatever u need
  }

有关php-isset

的更多参考

答案 2 :(得分:0)

因此,其他答案对于我认为是数字值的方法可能效果很好,但是如果您有文本值,则需要确保可以正确地将其转义为JavaScript。 import * as MyAssets from "./assets"十分适合。我会做这样的事情:

json_encode()

这将确保正确地转义任何文本,并且null coalesce operator为您提供默认值,而不会在未定义变量的情况下触发通知,以防该变量没有值。