日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

PHP中的stdClass 【转】

發(fā)布時間:2023/12/10 php 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP中的stdClass 【转】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? 如果所有的Class都應(yīng)該存在于一個默認(rèn)的層級中的話,那么最頂層應(yīng)該是最為一般的Class,也就是說極為抽象的,每一個下層的Class均比其上層的Class(即父類)更加專門化?;谠撍枷?#xff0c;在PHP中,這個頂層的Class被命名為“stdClass”,且作為一個“Standard Class”,你可以把它看成是一個不含任何屬性和方法的類。

?

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

  • 問題
    你想創(chuàng)建一個對象,并在其中添加一些屬性,但是你卻不想把它作為一個明確的類正式地定義它。這一點在一些情況下是相當(dāng)有用的,例如當(dāng)你需要定義一個方法來返回帶有某些屬性(不確定的)的對象時,就如同從mysql_fetch_object( ) 或者 imap_header( )的使用一樣。
  • 解決方案
    使用PHP內(nèi)建類,stdClass:
    [php] view plaincopyprint?
  • $pickle = new stdClass;
  • $pickle->type = 'fullsour';
  • $pickle = new stdClass; $pickle->type = 'fullsour';
  • 討論
    創(chuàng)建一個stdClass類型的對象,其不含有任何屬性和方法,就像array( )返回一個空數(shù)組一樣。
    你可以為其創(chuàng)建一個新的屬性并分配給它某個值,然后檢查它的值。
    [php] view plaincopyprint?
  • $guss = new stdClass;
  • $guss->location = 'Essex';
  • print "$guss->location/n";
  • $guss->location = 'Orchard';
  • print "$guss->location/n";
  • $guss = new stdClass; $guss->location = 'Essex'; print "$guss->location/n"; $guss->location = 'Orchard'; print "$guss->location/n";
    方法,無論如何在一個對象被初始化之后再去定義它。但是在你想使用一個像從數(shù)據(jù)庫結(jié)果集中提取出來的對象(mysql_fetch_object方法,畢竟在調(diào)用它是你并不像真正地去請求數(shù)據(jù)庫)這樣的一般對象時,創(chuàng)建 stdClass 對象是非常有用的。如下:
    [php] view plaincopyprint?
  • function pc_format_address($obj) {
  • return "$obj->name <$obj->email>";
  • }
  • $sql = "SELECT name, email FROM users WHERE id=$id";
  • $dbh = mysql_query($sql);
  • $obj = mysql_fetch_object($dbh);
  • print pc_format_address($obj);
  • function pc_format_address($obj) { return "$obj->name <$obj->email>"; } $sql = "SELECT name, email FROM users WHERE id=$id"; $dbh = mysql_query($sql); $obj = mysql_fetch_object($dbh); print pc_format_address($obj);
    pc_format_address方法使用一個對象的name 和 email 屬性,然后使其格式化后返回(如上代碼)。下面我們不調(diào)用mysql_fetch_object方法,應(yīng)該如何使用呢?
    [php] view plaincopyprint?
  • $obj = new stdClass;
  • $obj->name = 'Adam Trachtenberg';
  • $obj->email = 'adam@example.com';
  • print pc_format_address($obj);
  • $obj = new stdClass; $obj->name = 'Adam Trachtenberg'; $obj->email = 'adam@example.com'; print pc_format_address($obj);
  • 最后, 這種在運行時為一個空對象設(shè)置屬性的用法,不難看出也會給我們帶來一些問題,如你無法真正確定這個對象是誰,目的是什么。http://blog.csdn.net/crazyjeff_liu/article/details/4046070
  • 轉(zhuǎn)載于:https://www.cnblogs.com/ellisonDon/archive/2012/11/19/2777010.html

    總結(jié)

    以上是生活随笔為你收集整理的PHP中的stdClass 【转】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。