程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP中的stdClass

PHP中的stdClass

編輯:關於PHP編程

PHP中的stdClass


如果所有的Class都應該存在於一個默認的層級中的話,那麼最頂層應該是最為一般的Class,也就是說極為抽象的,每一個下層的Class均比其上層的Class(即父類)更加專門化。基於該思想,在PHP中,這個頂層的Class被命名為"stdClass",且作為一個"Standard Class",你可以把它看成是一個不含任何屬性和方法的類。

使用stdClass的目的: 在運行時添加屬性到基對象(Base Object)

問題

你想創建一個對象,並在其中添加一些屬性,但是你卻不想把它作為一個明確的類正式地定義它。這一點在一些情況下是相當有用的,例如當你定義了一個方法來返回帶有某些屬性(不確定的)的對象時,如通過 mysql_fetch_object( ) 返回結果集對象的時,對某些屬性不確定是否存在,又不想一個個isset檢驗的時候。

解決方案

使用PHP內建類,stdClass ,例如:

<?php
$sql="SELECT name,email FROM users WHERE id=$id";
$dbh=mysql_query($sql);
$obj=mysql_fetch_object($dbh);
if(!$obj) $obj=new StdClass;
$array=array(
	'name'=>$obj->name,
	'email'=>$obj->email
);

最後, 這種在運行時為一個空對象設置屬性的用法,不難看出也會給我們帶來一些問題,如你無法真正確定這個對象是誰,目的是什麼。

您可能感興趣的文章

  • php中$this、static、final、const、self 等幾個關鍵字的用法
  • PHP 字符串轉義函數(addslashes,stripslashes)詳解
  • php中empty,is_null,isset的區別詳解
  • 如何刪除PHP數組中的元素(unset,array_splice)?
  • php在數組中查找某個值是否存在(in_array(),array_search(),array_key_exists())
  • php字符串替換函數str_replace速度比preg_replace快
  • php中在變量和函數前加static關鍵字之後的區別
  • php中關於抽象(abstract)類和抽象方法的問題解析

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved