PHP: 分享5个最近常用的魔术方法
Jun 23, 2016 pm 01:10 PM
1.__contruct()
如英文意思,就是构造函数。这个跟普通的构造函数的区别在于,不用每次都定义一个与类名同名的函数作为构造函数。
2.__call($funcName, $params)
是在实例调用类中未定的函数时触发的函数
class Model{ //$funcName: 未定义函数名 //$params(数组): 未定义函数的参数 __call($funcName, $params){ //我这里没有用到$params return "the function: $funcName is not exist!" }}$model =new Model();$model->func(); //函数func不存在,就会触发__call
3.__get($name)
用来调用类中的非公有属性:
class Model{ private host ="http://localhost"; public function __get($name){ return $this->$name; }}$model =new Model();$model->host;
4.__set($name, $value)
和__get方法相对应,用来给非公有属性的赋值
class Model{ private host =null; public function __set($name, $value){ $this->$name =$value; }}$model =new Model();$model->host ="http://localhost";
5.__autoload()
这个是用来引入类文件的,一般我们是用include、include_once、require、require_once来引入文件的
但是如果我们要引入多个文件,就要写当好的引入语句,这样既不方便又不美观,__autoload可以解决这个问题
,他最大的好处是他的懒惰属性,实例化对象的时候才会引入对应的类文件。
//比如我的Model类文件Model.class.php 在当前目录的上一层目录下的Model/Model.class.php(其实就是引入类文件的路径)function __autoload($className) { //$className就是类名 $filename = "../Model/". $className .".class.php"; //组合路径 require_once "$filename"; //引入类文件}//只要一实例化对象就会触发这个函数

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium)

Arbeiten mit Flash -Sitzungsdaten in Laravel

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs

12 Beste PHP -Chat -Skripte auf Codecanyon

Ankündigung von 2025 PHP Situation Survey
