在JavaScript中使用一个PHP定义的变量是否可行?

16 浏览
0 Comments

在JavaScript中使用一个PHP定义的变量是否可行?

在 JavaScript 中可以使用之前在 PHP 代码中定义的变量吗?

例如(在页面模板的 PHP 文件中):




0
0 Comments

在PHP中使用定义的变量在JavaScript中是可能的。你可以使用PHP的json_encode函数将变量以JS的形式打印出来。例如,如果你在PHP中有一个数组:

$cow=array('bat'=>false,'fob'=>'widget');

你想要在JS中使用这个数组,你可以这样做:

var cow=; 
// 打印出 {"bat":false,"fob":"widget"}
console.log(cow.fob);// 显示 'widget'

json_encode函数还会自动为字符串加上引号。当然,并不是所有的PHP值都可以被json_encode的,对象中包含方法的无法被表达为javascript的值,但是根据你的描述,好像你并不关心这个问题。

0
0 Comments

使用wp_localize_script()函数将PHP定义的变量传递给javascript是更好的方式:

wp_enqueue_script( 'my-script', '/path/to/my-script.js' );
$loc_variables = array(
    'lat' => $latitude,
    'lon' => $longitude
    );
wp_localize_script( 'my-script', 'location', $loc_variables );

然后在my-script.js中,可以通过location.latlocation.lon访问这些变量。

很好,我之前不知道这个方法。

,谢谢。你能说说为什么这种方法更好吗?

- 这种方法本质上与其他答案建议的方法相同,即在页面头部打印内联脚本来定义变量,但它还会通过WordPress的esc_js()函数来运行变量,以确保输出在XSS方面是安全的。此外,由于将变量与在WordPress中注册的脚本绑定,可以轻松将脚本移动到页脚或其他页面,而本地化脚本将随之移动。只是更好的做法而已。

0
0 Comments

使用 PHP 定义的变量在 JavaScript 中是不可能的,但是可以将它转化为 JavaScript 的变量。

解决方法如下:


以上代码将 PHP 的变量 `$myArrayVals` 转化为了 JavaScript 的变量 `myArray`。

0