处理 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 的备注。
我正在使用小胡子从一些 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 的备注。