php類自動裝載 鏈式操作 魔術方法

2022-04-29 01:42:11 字數 1539 閱讀 5140

1、自動裝載例項

目錄下有3個檔案:index.php load.php tests資料夾

tests資料夾裡有 test1.php

<?php

namespace tests;

class

test1

}

index.php內容

<?php

include "load.php";

tests\test1::test();

load.php內容

<?php

class

loader

}}spl_autoload_register(

array('loader','loadclass'));

2、鏈式操作

namespace baobab;

class

database

function order($order

)

function limit($limit)}

?>

$db = new

baobab\database();

$db->where('id = 1')->order('order by id')->limit(1);

3、魔術方法:

__get/__set:接管物件屬性。在給不可訪問屬性賦值時,

__set() 會被呼叫;讀取不可訪問屬性的值時,__get() 會被呼叫。

__call/__callstatic:在物件中呼叫乙個不可訪問方法時,__call() 會被呼叫;用靜態方式中呼叫乙個不可訪問方法時,__callstatic() 會被呼叫。

__tostring:乙個類轉化成字串

__invoke:以呼叫函式的方式呼叫乙個物件時,__invoke() 方法會被自動呼叫。

<?php

namespace baobab;

class

object

function __get($key

)

function __call($func, $param

)

static

function __callstatic($func, $param

)

function

__tostring()

function __invoke($param

)

}

$obj = new baobab\object

();$obj->title = 'hello';

echo

$obj->title;

echo

$obj->test1('hello', 123);

echo

$obj::test1('hello1', 1234);

echo

$obj

;echo

$obj('test1');

PHP 如何定義類 成員屬性及其操作與魔術方法

php 類的定義與屬性 一 類的定義 類的關鍵字定義使用 class 例 class test 二 類的屬性與方法 class test 三 定義乙個不能繼承的類 final class test final關鍵字只能修飾類和方法 不能用來修飾成員屬性 四 類 成員屬性及方法的宣告 1 public...

Php 鏈式執行,PHP實現鏈式操作的三種方法詳解

在php中有很多字串函式,例如要先過濾字串收尾的空格,再求出其長度,一般的寫法是 strlen trim str 如果要實現類似js中的鏈式操作,比如像下面這樣應該怎麼寫?str trim strlen 下面分別用三種方式來實現 方法一 使用魔法函式 call結合call user func來實現 ...

php自動載入類,PHP中類的自動載入的方法

類的自動載入是指,在外面的頁面中,並不需要去 引入 類檔案,但是程式會在需要的時候動態載入需要的類檔案。方法1 使用 autoload魔術函式 當程式需要某個類時,就會去呼叫該函式,該函式我們需要自己去定義並在其中寫好載入類檔案的通用語句。需要類是自動呼叫,而且會傳進來乙個類名,這個案例的檔名為21...