首頁 类库下载 PHP类库 php中stdClass的用法分析

php中stdClass的用法分析

Oct 20, 2016 pm 02:43 PM

本文實例分析了php中stdClass的用法。分享給大家供大家參考。

具體分析如下:

stdclass在php中是預先定義的幾個類別之一,是zent保留的一個類別。實際上它是PHP提供的一個基類,就是一個空白的類,裡面什麼都沒有,我們可以實例化它,然後定義一系列的變量,透過它來進行變量的傳遞(很多php程式設計師用它來傳遞一系列變數的值,而同時又懶得去創建一個自己的類別)。但是,由於實例化後不能加入方法,因此只能傳遞屬性。因為,一旦類別被實列化以後,就不能在添加方法了。

stdclass可以作為基類使用,其最大特點是,(其派生類別)可以自動添加成員變量,而無須在定義時說明。

一切php變數都是stdClass的實例。

使用方法:

1、使用stdclass:

$andy = array();
$andy = (object)$andy;
$andy->a = 1;
$andy->b = 2;
$andy->c = 3;
登入後複製

   

這樣數量a、b、c就填進了stdclass裡面。這樣要省事,因為新建空對像要$andy = new Andy; 而且還得先有class Andy{}。又如:

<?php
$a = new stdClass();
$a->id = &#39;11 &#39;;
$a->username = &#39;me&#39;;
print_r($a);
?>
登入後複製

   

將會輸出:stdClass Object ( [id] => 11 [username] => me ) 。
很多時候用這種方法取代陣列的使用,只不過是換一種語法形式。

讀取:

stdClass Object
(
  [getWeatherbyCityNameResult] => stdClass Object
    (
      [string] => Array
        (
          [0] => 四川
          [1] => 成都
          [2] => 56294
          [3] => 56294.jpg
          [4] => 2009-5-17 13:52:08
          [5] => 26℃/19℃
          [6] => 5月17日 阴转阵雨
        )
    )
)
登入後複製

   

其實和array差不多,只是訪問方式改變一點就行,我們一般習慣使用array['key']這種方式來訪問數組。
對於這種stdClass來說,如上例,$weather->getWeatherbyCityNameResult->string[0]可以這樣來存取屬性,這個將得到結果「四川」。

3、實例化,new。

比較這兩個程式碼:

<?php  
$a = array(1=>2,2=>3);
$a = (object)$a;
$a->id = &#39;11 &#39;;
$a->username = &#39;me&#39;;
print_r($a);
?>
登入後複製

   

將輸出:stdClass Object ( [1] => 2 [2] => 3 [id] => 11 [username] => meusername] => me ) 。

<?php  
$a = array(1=>2,2=>3);
$a = (object)$a;
$a = new stdClass();
$a->id = &#39;11 &#39;;
$a->username = &#39;me&#39;;
print_r($a);
?>
登入後複製

   

將輸出:stdClass Object ( [id] => 11 [username] => me ) 。

原來用new實例化後,前面的陣列清空,只留下後面加進來的,如果不實例化,stdClass將保留所有元素。

要注意的是,在函數裡面使用global、static時遇new stdclass引用的情況,這時&new stdclass將會失效,應避免使用引用,直接用new stdclass。

希望本文所述對大家的php程式設計有幫助。


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)