我使用下面的胡子从一些PHP代码加载一个属性:
PHP:
$data['foo'] = getFooAsJSON();
JavaScript的:
var bar = <%&foo%>;
这里的问题是当&lt;%&amp; foo%&gt;有时候不存在,所以JS变成了:
var bar = ;
抛出语法错误。我想将条形指定为null
作为后备,但假设<%&foo%>
没有返回任何内容,我不确定如何在不调用语法错误的情况下执行此操作。
有什么想法吗?
答案 0 :(得分:4)
名称getFooAsJSON
表明它返回JSON,这是一种文本符号,因此返回一个字符串。该字符串不能为空并且是有效的JSON;它必须包含某些东西。
如果没有任何内容可以返回,我建议返回"null"
,这是有效的JSON,因此也是有效的JavaScript。然后你最终得到了
var bar = null;
...在您的JavaScript中。
答案 1 :(得分:0)
您可以为PHP请求设置默认参数。
$data['foo'] = getFooAsJSON() ?: 'null';
$jsonData = getFooAsJSON();
$data['foo'] = $jsonData ? $jsonData : 'null';
感谢T.J. Crowder有关有效JSON的说明。