程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> PHP中 Classes/Objects 類/對象函數使用教程

PHP中 Classes/Objects 類/對象函數使用教程

編輯:PHP基礎知識
 

簡介:本類函數允許獲取類和對象實例的信息。可以取得對象所屬的類的名字,以及它的成員屬性和方法。通過使用這些函數,不僅可以弄清楚一個對象類的全體成員,而且可以知道它的起源(例如,該對象類是哪個類的擴展)。

class_exists — 檢查類是否已定義
bool class_exists ( string $class_name [, bool $autoload ] )

如果由 class_name 所指的類已經定義,此函數返回 TRUE,否則返回 FALSE。
class_exists() 默認將會嘗試調用 __autoload,如果不想讓 class_exists() 調用 __autoload,可以將 autoload 參數設為 FALSE。

get_class_methods — 返回由類的方法名組成的數組
array get_class_methods ( mixed $class_name )

PHP 4.0.6 開始,可以指定對象本身來代替 class_name,即:
$class_methods = get_class_methods('myclass');
// or
$class_methods = get_class_methods(new myclass());

自 PHP 5 起,本函數按照方法被定義的名字返回(區分大小寫)。在 PHP 4 中總是返回小寫的。

get_class_vars — 返回由類的默認屬性組成的數組
array get_class_vars ( string $class_name )

返回由類的默認公有屬性組成的關聯數組,此數組的元素以 varname => value 的形式存在。

get_class — 返回對象的類名
string get_class ([ object $obj ] )

返回對象實例 obj 所屬類的名字。如果 obj 不是一個對象則返回 FALSE。

get_declared_classes — 返回由已定義類的名字所組成的數組
array get_declared_classes ( void )

get_declared_interfaces — 返回一個數組包含所有已聲明的接口
array get_declared_interfaces ( void )

get_object_vars — 返回由對象屬性組成的關聯數組
array get_object_vars ( object $obj )

get_parent_class — 返回對象或類的父類名
string get_parent_class ([ mixed $obj ] )

如果 obj 是對象,則返回對象實例 obj 所屬類的父類名。
如果 obj 是字符串,則返回以此字符串為名的類的父類名。此功能是在 PHP 4.0.5 中增加的。
自 PHP 5 起,如果在對象的方法內調用,則 obj 為可選項。

interface_exists — 檢查接口是否已被定義
bool interface_exists ( string $interface_name [, bool $autoload ] )

本函數在由 interface_name 給出的接口已定義時返回 TRUE,否則返回 FALSE。

is_a — 如果對象屬於該類或該類是此對象的父類則返回 TRUE
bool is_a ( object $object , string $class_name )

【注】PHP 5 中此函數已廢棄,取而代之的是PHP中的唯一的 類型運算符 instanceof ,使用方法如下:
<?php
class A { }
class B { }
$thing = new A;
if ($thing instanceof A) {
echo 'A';
}
if ($thing instanceof B) {
echo 'B';
}
?>

is_subclass_of — 如果此對象是該類的子類,則返回 TRUE
bool is_subclass_of ( object $object , string $class_name )

method_exists — 檢查類的方法是否存在
bool method_exists ( object $object , string $method_name )

property_exists — 檢查對象或類是否具有該屬性
bool property_exists ( mixed $class , string $property )

【注】需要說明的是,如果在‘當前范圍’內,屬性訪問不到的話,比如是private,則依然返回 FALSE ,例如:
<?php
class myClass {
public $mine;
private $xpto;

static function test() {
// true, it can be accessed from here
var_dump(property_exists('myClass', 'xpto'));
}
}
var_dump(property_exists('myClass', 'mine')); //true
var_dump(property_exists(new myClass, 'mine')); //true
var_dump(property_exists('myClass', 'xpto')); //false, isn't public
myClass::test();
?>

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