处理 JavaScript 中不存在的变量

Dealing with a non-existent variable in JavaScript

我正在使用小胡子从一些 PHP 代码中加载 属性,如下所示:

PHP:

$data['foo'] = getFooAsJSON();

JavaScript:

var bar = <%&foo%>;

这里的问题是当 <%&foo%> 有时不存在时,JS 变成:

var bar = ;

抛出语法错误。我想将 bar 分配为 null 作为后备,但鉴于 <%&foo%> returns 什么都没有,我不确定如何在不调用语法错误的情况下执行此操作。

有什么想法吗?

名称 getFooAsJSON 暗示它 returns JSON,这是一个文本符号,因此 returns 是一个字符串。该字符串不能为空且有效 JSON;它必须包含东西

如果 return 没有任何内容,我建议 returning "null",这是有效的 JSON 并且(因此)也有效 JavaScript。然后你会得到

var bar = null;

...在您的 JavaScript.

您的 PHP 请求可以有一个默认参数。

PHP v5.3 及更高版本

$data['foo'] = getFooAsJSON() ?: 'null';

PHP v5.2 及更低版本

$jsonData = getFooAsJSON();

$data['foo'] = $jsonData ? $jsonData : 'null';

记入 T.J. Crowder 以获取有效 JSON 的备注。