php對象數組
Ⅰ php中數組能儲存對象嗎
可以的 舉個簡單的例子給你
<?php
class foo
{
function do_foo()
{
echo "Doing foo.";
}
}
$bar = new foo;
$arry1=array(1,$bar);//這里將實例化的對象存入數組
var_mp($arry1);//這里列印數組結構 你會發現下標1的位置存儲了一個object對象
$arry1[1]->do_foo();;//以數組形式 調用do_foo();
$bar->do_foo();//正常的調用do_foo()
//兩種方式輸出是一樣的 充分說明 數組是可以存儲對象的 希望對你的學習有幫助
?>
//下面是輸出 我自動換行分割了下 其實是一行
array(2) { [0]=> int(1) [1]=> object(foo)#1 (0) { } }
Doing foo.
Doing foo.
Ⅱ php類被實例化以後生成的對象 如何變為 php數組呢
使用對象的引用對象的屬性的方式引用唄。
$obj->pro;//$obj為對象名,pro為其屬性。
echo $page->prev;
Ⅲ 如何將PHP對象數組轉換成普通數組
在利用jQuery EasyUI框架進行程序開發時,碰到前台將JSON格式數據傳遞到伺服器後台,經php的json_decode函數轉換成的數組由於為對象數組,php程序無法對數據進行正常處理的情況,為此需要開發一個PHP回調函數(objarray_to_array)將對象數組轉換成普通數組。
/**
* 對象數組轉為普通數組
*
* AJAX提交到後台的JSON字串經decode解碼後為一個對象數組,
* 為此必須轉為普通數組後才能進行後續處理,
* 此函數支持多維數組處理。
*
* @param array
* @return array
*/
function objarray_to_array($obj) {
$ret = array();
foreach ($obj as $key => $value) {
if (gettype($value) == "array" || gettype($value) == "object"){
$ret[$key] = objarray_to_array($value);
}else{
$ret[$key] = $value;
}
}
return $ret;
}
Ⅳ PHP中如何定義對象類型數組
應該是存到對象屬性中吧
你把
public function setDepartment($department)
{
$this->department=$department;
}
改成
public function setDepartment($department)
{
$this->department[]=$department;
}
即可
private $department;
要不要改成
private $department=array();
其實無所謂
Ⅳ php中數組對象轉普通數組
/**
* 對象數組轉為普通數組
* 此函數支持多維數組處理。
*
* @param array
* @return array
*/
function objarray_to_array($obj) {
$ret = array();
foreach ($obj as $key => $value) {
if (gettype($value) == "array" || gettype($value) == "object"){
$ret[$key] = objarray_to_array($value);
}else{
$ret[$key] = $value;
}
}
return $ret;
}
你可以去後盾人平台看看,裡面的東西不錯
Ⅵ PHP中數組是不是對象
不是對象。而且不是真正意義上的數組。
Ⅶ php 數組元素是對象類型問題
寫得略有點問題,我改了改:
class A {
private $age;
public function __construct($age){
$this->age=$age;
}
public function getAge(){
return $this->age;
}
}
$a1=new A(12);
$arr=array($a1);
printf($arr[0]->getAge());
運行成功記得採納,謝謝!
Ⅷ php怎麼把對象轉為數組
這里定義2個php匿名對象和數組相互轉換的函數,代碼如下:
function array2object($array) {
if (is_array($array)) { $obj = new StdClass(); foreach ($array as $key => $val){ $obj->$key = $val; } } else { $obj = $array; } return $obj;}function object2array($object) { if (is_object($object)) { foreach ($object as $key => $value) { $array[$key] = $value; } } else { $array = $object; } return $array;}
用法示例如下:
$array = array('foo' => 'bar','one' => 'two','three' => 'four');$obj = array2object($array);print $obj->one; // output's "two"$arr = object2array($obj);print $arr['foo']; // output's bar
Ⅸ php中怎麼把對象從數組中取出來
我會說
$tmr = (object)$arr[i];
少了一個$符號么
$tmr = (object)$arr[$i];
php以為你的i是常量啊,而且你也沒定他的值,取都沒取出來
樓主不細心啊
Ⅹ PHP數組裡面存放對象
樓上解釋正確,不過我補充一下。
既然初始化是在類聲明之後,那麼可以通過手動串列化和反串列化來達到目的。
保存的時候使用serialize來保存,提取恢復的時候使用unserialize來恢復。
當然,這個還有一個要注意的地方,需要保存的對象最好是只包含數據,意思是,不要有資料庫連接資源、文件資源之類的,如果包含這些,串列和反串列的結果都是一個int 0,反串列的時候可能不能正常工作。
至於對象串列反串列的一些可定製的功能,可以參考幫助文檔的這個部分:
http://dk2.php.net/manual/zh/language.oop.magic-functions.php
通過定義魔術函數__sleep __wakeup來實現。