在JavaScript中使用PHP定义的变量可能吗?

时间:2011-05-04 15:21:53

标签: php javascript

是否可以在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>

3 个答案:

答案 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.latlocation.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值,但听起来并不像你担心的那样。