是否可以在javascript中使用早期PHP代码中定义的变量?
例如(在页面模板PHP文件中):
<?php
$arr = array(-34, 150);
?>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript">
...
var latlng = new google.maps.LatLng($arr);
...
}
</script>
答案 0 :(得分:7)
更好的是,使用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.lat
和location.lon
来访问。
答案 1 :(得分:2)
不,但你可以把它变成一个js var ...
<script type="text/javascript">
var myArray = new Array(<?php echo $myArrayVals; ?>);
</script>
答案 2 :(得分:0)
为了扩展Milo的答案,您可以使用PHP的json_encode函数以JS形式打印变量。
例如,如果你有一个PHP数组
<?php
$cow=array('bat'=>false,'fob'=>'widget');
你想要JS,那么你可以
<script>
var cow=<?php echo json_encode($cow);?>;
// prints {"bat":false,"fob":"widget"}
console.log(cow.fob);//'widget' of course
json_encode也负责引用字符串。当然,并非所有PHP值都是json_encodable - 带有方法的对象不能表示为javascript值,但听起来并不像你担心的那样。