『壹』 php數組中可否存放對象如果可以,那麼在smarty的模板中應當如何獲取對象的屬性值
PHP的數組是支持保存對象的實例的,然後你的錯誤提示中也能看出是用了數組的方式來訪問了一個對象。
建議你不要用對象的形式,而全部都用數組。可以用json函數來轉換
$user_array=json_decode(json_encode($user_array),true);
這樣一來$user_array裡面就全部都是數組,其中原先對象的部分被一個包含了其所有成員屬性的數組替代。
『貳』 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 如何將數組轉化成對象
$arr=array(0=>array('id'=>1,'name'=>'aaa'));
$arr=json_encode($arr);
$arr=json_decode($arr);
var_mp($arr);
試試,你就知道了
『伍』 PHP中數組是不是對象
不是對象。而且不是真正意義上的數組。
『陸』 PHP 對象數組的篩選和判斷
手打不易,有用請採納。
$rArray = json_decode(json_encode($r),true);//通過json將對象轉換為數組。
foreach($rArray as $k => $v){
if($v['banji']==1){ //如果banji=1則求語文成績
echo "語文成績={$v['yuwen']}";
}elseif($v['banji']==2){ //如果banji=2則求數學成績
echo "語文成績={$v['shuxue']}";
}
if($v['xingming']=='x'){ //有一個姓名為$x是否在banji1
if($v['banji']==1){
echo "xingmign為x的是班級1";
}else{
echo "xingmign為x的不是班級1";
}
}
}
『柒』 php創建一個類,在類中聲明一個數組存放另一個對象,為什麼無法調用數組中對象的方法
//新建一個類User用來存放這,三個數據
//結果放到一個User數組中,你看這可以嗎?
//還是說要放到一個list中?
public class ObjectTest {
public static void main(String[] args) {
String[] id = new String[8];
String[] type = new String[8];
String[] username = new String[8];
User[] users = getUsers(type, id, username);
}
private static User[] getUsers(String[] type, String[] id, String[] username) {
User[] users = new User[type.length];
for (int i = 0; i < type.length; i++) {
users[i] = new User(id[i], type[i], username[i]);
}
return users;
}
}
class User {
public User(String id, String tpye, String username) {
this.tpye = tpye;
this.id = id;
this.username = username;
}
private String tpye;
private String id;
private String username;
public String getTpye() {
return this.tpye;
}
public String getId() {
return this.id;
}
public String getUsername() {
return this.username;
}
public void setTpye(String tpye) {
this.tpye = tpye;
}
public void setId(String id) {
this.id = id;
}
public void setUsername(String username) {
this.username = username;
}
}
『捌』 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程序如下
<?php
$s='{"data":["阿里:65","支付寶:2","微信:1"]}';
$obj=json_decode($s,true);
$arr=$obj['data'];
$c=array();
for($i=0;$i<count($arr);$i++){
$b=array();
$a=explode(':',$arr[$i]);
$b[$a[0]]=$a[1];
$c[$i]=$b;
}
$result['data']=$c;
echo json_encode($result,JSON_UNESCAPED_UNICODE);
?>
『拾』 PHP數組裡面存放對象
樓上解釋正確,不過我補充一下。
既然初始化是在類聲明之後,那麼可以通過手動串列化和反串列化來達到目的。
保存的時候使用serialize來保存,提取恢復的時候使用unserialize來恢復。
當然,這個還有一個要注意的地方,需要保存的對象最好是只包含數據,意思是,不要有資料庫連接資源、文件資源之類的,如果包含這些,串列和反串列的結果都是一個int 0,反串列的時候可能不能正常工作。
至於對象串列反串列的一些可定製的功能,可以參考幫助文檔的這個部分:
http://dk2.php.net/manual/zh/language.oop.magic-functions.php
通過定義魔術函數__sleep __wakeup來實現。