PHP 函式庫精講之類與物件

2022-09-15 08:57:07 字數 2786 閱讀 6585

一些函式已經被廢棄或者移除,請不要使用它們

相關函式

第二個引數用來決定如果尚未載入,是否使用自動載入。

class_exists ( string $class_name [, bool $autoload = true ] ) : bool

inte***ce_exists ( string $inte***ce_name [, bool $autoload = true ] ) : bool

trait_exists ( string $traitname [, bool $autoload = true ] ) : bool

示例 - 廣泛的類存在性檢查函式

function common_class_exists(string $class): bool

method_exists ( mixed $object , string $method_name ) : bool

property_exists ( mixed $class , string $property ) : bool

示例 - 實現乙個**函式,使用者可通過方法或者屬性來定義**的 url

trait redirectsusers

return property_exists($this, 'redirectto') ? $this->redirectto : '/home';

}}

is_a ( object $object , string $class_name [, bool $allow_string = false ] ) : bool

is_subclass_of ( object $object , string $class_name ) : bool

示例

inte***ce a {}

inte***ce b {}

class basefoo implements b {}

class foo extends basefoo implements a{}

$foo = new foo();

// 物件

is_a($foo, 'basefoo'); // true

is_a($foo, 'foo'); // true

is_a($foo, 'a'); // true

// 類

is_a('foo', 'basefoo'); // false

is_a('foo', 'basefoo', true); // true, 傳入第三個引數,代表允許使用類名而不是示例

is_subclass_of($foo, 'foo'); // false

is_subclass_of($foo, 'basefoo'); // true

is_subclass_of($foo, 'b'); // true

實際情況中,更多的是使用操作符instanceof

$foo instanceof foo; // true

$foo instanceof a; // true

$foo instanceof b; // true

class_alias()- 為乙個類建立別名

class_alias ( string $original , string $alias [, bool $autoload = true ] ) : bool

示例 - 類別名載入器,用於管理類的別名

class aliasloader

public function load($alias)

}}class longlonglonglongfoo {}

$aliases = [

'foo' => 'longlonglonglongfoo',

'bar' => 'longlonglonglongbar',

];$loader = new aliasloader($aliases);

$loader->load('foo');

$foo = new foo();

var_dump($foo); // object(longlonglonglongfoo)#3395

這些函式在實際中很少需要用到

foreach (get_declared_classes() as $class)

相關函式

get_called_class ( void ) : array

get_class ([ object $object = null ] ) : string

get_parent_class ([ mixed $obj ] ) : string

示例 - 丟擲異常時獲取異常的類

throw (new modelnotfoundexception)->setmodel(get_called_class());

示例 - 獲取類中的所有訪問器屬性

class foo 

public function gettextattribute()

public static function getmutatormethods()

}foo::getmutatormethods()

// [

// "fullname",

// "text",

// ]

PHP之類與物件

定義乙個car類並例項化乙個物件 class car car new car car name 寶馬 echo car getname 2.一般通過 物件操作符來訪問物件的屬性或者方法,對於靜態屬性則使用 雙冒號進行訪問。當在類成員方法內部呼叫的時候,可以使用 this偽變數呼叫當前物件的屬性。我們...

php陣列函式庫

提取陣列中key在key arr中的元素 param array source arr 原陣列 param string key arr key作為值組成的陣列 return mode 陣列 function array extract key array source arr,key arr if...

tf 函式庫與np 函式庫的轉換

前言 在對演算法模型進行部署的時候,往往需要做一些工作。以xilinx開發板部署tf框架模型為例,首先需要對訓練好的ckpt模型進行freeze得到.pb模型,之後,對其進行量化 編譯生成elf檔案,然後在板卡上通過main.cc函式呼叫pb模型的輸入 輸出節點對網路模型進行計算,注意這裡的計算分為...