将PHP变量分配给PHP数组

时间:2015-04-06 12:40:54

标签: javascript php

我想将一些php分配给一个javascript变量,如:

var goldPrice = <?php echo ResourceArray::$goldLevel[$user->getResource($data->id, "goldLevel")]?>;

但最终得到:1(而不是2000)。

这是我的问题排查:

我在php类中有一个数组:

<?php
class ResourceArray {
  public static $goldLevel = array(
   0, 2000, 10000
  ),

我试图通过几个变量分配来找到没有运气的问题:

var goldLevel = <?php $user->getResource($data -> id, "goldLevel") ?>;
var goldPrice = <?php echo ResourceArray::$goldLevel[$user->getResource($data->id, "goldLevel")]?>;
var goldPrice1 = <?php echo ResourceArray::$goldLevel[1]?>;

这写道:

var goldLevel = 1;
var goldPrice = 1;
var goldPrice1 = 2000;

最后我尝试将一个php变量分配给:

PHP: $goldLevel1 = $user->getResource($data->id, "goldLevel");
     $goldLevel2 = 1;


js: var goldPrice2 = <?php echo ResourceArray::$goldLevel[$goldLevel1]?>;
    var goldPrice3 = <?php echo ResourceArray::$goldLevel[$goldLevel2]?>;

最终结果如下:

var goldPrice2 = ;
var goldPrice3 = 2000;

当我回显$ goldLevel1和$ goldLevel2时,它显示1和1。

3 个答案:

答案 0 :(得分:0)

尝试这个对我很好:

<html><body>
<?php

class ResourceArray {
  public static $goldLevel = array(
   0, 2000, 10000
  );
}

// set gold price to second entry of goldLevel array
$goldPrice = ResourceArray::$goldLevel[1];
// check to make sure we have a valid number
if (!is_numeric($goldPrice) || $goldPrice < 1)
    $goldPrice = 0;

// this outputs 2000
echo $goldPrice;

?>
<script>
    var goldPrice = <?php echo $goldPrice; ?>;
    alert(goldPrice);
</script>
</body></html>

答案 1 :(得分:0)

尝试使用json_encode()

Documentation for json_encode

像这样使用

var goldPrice = <?php echo json_encode(array(0, 2000, 10000))?>;

只需替换动态创建的数组。

答案 2 :(得分:0)

首先创建一个json变量

 var jsonO = <?php echo json_encode(array(0, 2000, 10000))?>;

这将是一个json字符串,将其转换为javascript数组

var goldPrice = $.map(jsonO, function(el) { return el; })

然后使用goldPrice数组。