将PHP变量分配给PHP数组


Assigning PHP variable to PHP array

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

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。

尝试这个对我来说很好:

<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>

尝试使用json_encode()

json_encode 文档

像这样使用

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

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

首先创建json 的变量

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

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

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

然后使用goldPrice数组。