本文目錄一覽:
- 1、PHP數組中可否存放對象?如果可以,那麼在smarty的模板中應當如何獲取對象的屬性值?
- 2、怎麼在php中保存對象
- 3、PHP數組裡面存放對象
- 4、php創建一個類,在類中聲明一個數組存放另一個對象,為什麼無法調用數組中對象的方法?
- 5、PHP中如何保存對象的引用,以便在多個不同地方使用?
PHP數組中可否存放對象?如果可以,那麼在smarty的模板中應當如何獲取對象的屬性值?
PHP的數組是支持保存對象的實例的,然後你的錯誤提示中也能看出是用了數組的方式來訪問了一個對象。
建議你不要用對象的形式,而全部都用數組。可以用json函數來轉換
$user_array=json_decode(json_encode($user_array),true);
這樣一來$user_array裡面就全部都是數組,其中原先對象的部分被一個包含了其所有成員屬性的數組替代。
怎麼在php中保存對象
只能這樣嗎?採用前端控制器的模式,每次在一個php頁面創建的對象,通過統一入口的方式時候,對象就會被銷毀,難道只能保存在session中嗎?這樣做的話會不會加重負擔呢,
PHP數組裡面存放對象
樓上解釋正確,不過我補充一下。
既然初始化是在類聲明之後,那麼可以通過手動串列化和反串列化來達到目的。
保存的時候使用serialize來保存,提取恢復的時候使用unserialize來恢復。
當然,這個還有一個要注意的地方,需要保存的對象最好是只包含數據,意思是,不要有資料庫連接資源、文件資源之類的,如果包含這些,串列和反串列的結果都是一個int 0,反串列的時候可能不能正常工作。
至於對象串列反串列的一些可定製的功能,可以參考幫助文檔的這個部分:
通過定義魔術函數__sleep __wakeup來實現。
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中如何保存對象的引用,以便在多個不同地方使用?
可以試試SESSION,它可以保存對象。
例如:
session_start();
class X{
function y()
{echo ‘y’;}
}
if (!isset($_SESSION[‘A’])){
$_SESSION[‘A’] = new X();
echo ‘X’;
}
else
$_SESSION[‘A’]-y();
第一次輸出X,以後輸出y。
謝謝!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/283718.html