php「物件,陣列」互相轉換

2021-04-27 10:36:29 字數 1624 閱讀 2859

php「物件,陣列」互相轉換

關於陣列轉換為物件,在phpx有看到一些帖子討論

$andy = array();

$andy['a'] = 1;

$andy['b'] = 2;

$andy['c'] = 3;

把andy強制轉換為陣列,似乎引用的方便些了,主要是變成了->

$andy = array();

$andy = (object)$andy;

$andy->a = 1;

$andy->b = 2;

$andy->c = 3;

還嫌它麻煩,再用stdclass

$andy   = new stdclass;

$andy->a = 1;

$andy->b = 2;

$andy->c = 3;

stdclass是php的乙個基類,所有的類幾乎都繼承這個類,所以任何時候都可以被new,可以讓這個變數成為乙個object。同時,這個基類又有乙個特殊的地方,就是沒有方法。在這裡還有一點是物件和陣列資源耗費的問題:php5的物件的獨特性,物件在任何地方被呼叫,都是引用位址型的,所以相對消耗的資源會少一點。在其它頁面為它賦值時是直接修改,而不是引用乙個拷貝。陣列在程式的使用中應該是最方便的,然而陣列的每次被引用($a = $b),其實都是建立了乙個副本,而且,陣列被unset後,還是占用了記憶體(沒有測試過)。還有乙個函式arrayobject,可以直接將陣列轉化為物件這也是乙個好辦法哦。

arrayobject::__construct -- construct a new array object

<?php

$array 

= array(

'1' 

=> 

'one'

,'2' 

=> 

'two'

,'3' 

=> 

'three'

);$arrayobject

= new 

arrayobject

($array

);print_r($

arrayobject

);?>

arrayobject object

( [1] => one

[2] => two

[3] => three

)

試驗了一下物件轉換為陣列,也可以強制轉換
$arr = (array)$obj;

如下例子轉換結果,可對比:

tag object

( [name] => main

[text] =>

[parrent] =>

[content] =>

[props] => array()

[inner] => array()

[level] => 0

)

array

( [name] => main

[text] =>

[parrent] =>

[content] =>

[props] => array()

[inner] => array()

[level] => 0

)

jQuery物件與js物件互相轉換

兩種轉換方式將乙個jquery物件轉換成js物件 index 和.get index 1 jquery物件是乙個資料物件,可以通過 index 的方法,來得到相應的js物件。如 var v v jquery物件 var v v 0 js物件 alert v.checked 檢測這個checkbox是...

jQuery物件與js物件互相轉換

兩種轉換方式將乙個jquery物件轉換成js物件 index 和.get index 1 jquery物件是乙個資料物件,可以通過 index 的方法,來得到相應的js物件。如 var v v jquery物件 var v v 0 js物件 alert v.checked 檢測這個checkbox是...

jquery 與 dom 物件 互相轉換

jquery物件轉成dom物件 兩種轉換方式將乙個jquery物件轉換成dom物件 index 和.get index 1 jquery物件是乙個資料物件,可以通過 index 的方法,來得到相應的dom物件。如 var v v jquery物件 var v v 0 dom物件 alert v.ch...