亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 javascript 訪問 php 對象數組中的 php 對象的屬性

如何從 javascript 訪問 php 對象數組中的 php 對象的屬性

PHP
肥皂起泡泡 2023-07-08 15:32:56
我有一個 php 對象數組。在 JavaScript 函數中,我想訪問數組中對象的屬性。如果我json_encode整個數組,它顯示這些屬性是undefined。我怎樣才能做到這一點。我是 PHP 新手。PHP代碼:$_SESSION['objArray'] = $objArray;JavaScript 代碼:const objArray = <?php echo json_encode(($_SESSION['objArray'])) ?>;
查看完整描述

2 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

您當然需要將數組編碼為 JSON,以便 JavaScript 客戶端可以使用它。

正如您所提到的,您的數組中有特定類的實例,因此簡單的 JSON 編碼肯定無法正常工作。

這里,PHP自帶了JsonSerializable接口。您必須在您的類上實現此接口。讓我們舉個Foo例子:

class Foo implements JsonSerializable

{

? private $thing;


? public function __construct($thing)

? {

? ? $this->thing = $thing;

? }


? public function jsonSerialize()

? {

? ? return [

? ? ? 'thing' => $this->thing,

? ? ];

? }

}?

這是上述代碼片段的示例。如您所見,現在您可以創建 的實例Foo,將其嵌入到數組或其他內容中,并使用您自己的表示形式對其進行 JSON 編碼:


$foo = new Foo('something');

echo json_encode(['foo' => $foo]);


// {"foo": {"thing": "something"}}

將其輸出到內聯 JavaScript 塊中的工作方式與您編寫的類似:


<script type="application/javascript">

const obj = "<?php echo json_encode(($_SESSION['objArray'])) ?>;";

</script>


查看完整回答
反對 回復 2023-07-08
?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

將 php 數組存儲到 javascript 變量中,


示例值:( 內部示例數組$_SESSION['objArray'])


$_SESSION['objArray'] = array(

    'name' => 'foo',

    'email' => '[email protected]',

    'age' => 30

);

將對象轉換為數組:(可選)(如果里面有對象值$_SESSION['objArray'])


$_SESSION['objArray'] = json_decode(json_encode($_SESSION['objArray']), true);

解決方案:( 分配給javascript變量objArray)


<script>

    const objArray = "<?php echo json_encode($_SESSION['objArray']); ?>";

    console.log(objArray);

</script>

控制臺輸出:


{"name":"foo","email":"[email protected]","age":30}

說明: json_encode函數會將數組轉換為json字符串,JavaScript 會將其視為字符串,并且在賦值時需要用引號將其'或覆蓋"。


希望這有幫助。


查看完整回答
反對 回復 2023-07-08
  • 2 回答
  • 0 關注
  • 183 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號