1.construct()
實(shí)例化對(duì)象是被自動(dòng)調(diào)用。當(dāng)construct和以類名為函數(shù)名的函數(shù) 同時(shí)存在時(shí)調(diào)用construct,另一個(gè)不背調(diào)用。
類名為函數(shù)名的函數(shù)為老版的構(gòu)造函數(shù)。
2.destruct()
當(dāng)刪除一個(gè)對(duì)象或一個(gè)對(duì)象操作結(jié)束是被調(diào)用。
3.call()
對(duì)象調(diào)用某個(gè)方法。若方法不存在,這調(diào)用call 這個(gè)方法
4.get()
讀取一個(gè)對(duì)象屬性,如果對(duì)象屬性是私有的會(huì)調(diào)用它
5.set()
給一個(gè)對(duì)象屬性賦值時(shí)如果屬性是私有的會(huì)調(diào)用它
6.toString()
打印一個(gè)對(duì)象的時(shí)候會(huì)被調(diào)用。
7.clone()
克隆對(duì)象時(shí)被調(diào)用,如:$a=new test(); $a1=clone $a;
8.sleep()
Serialize 之前被調(diào)用,若對(duì)象比較大,想刪減一點(diǎn)東西在序列化可以用它。
9.wakeup()
Unserialize時(shí)被調(diào)用,做些對(duì)象的初始化工作。
10.isset()
檢測(cè)一個(gè)對(duì)象的屬性是否存在如果 檢測(cè)的屬性是私有的時(shí)候會(huì)被調(diào)用。
11.unset()
刪除一個(gè)對(duì)象屬性時(shí)如果 刪除的對(duì)象屬性是私有的會(huì)被調(diào)用
12.set_state()
調(diào)用var_export時(shí),被調(diào)用。用set_state的返回值做為var_export的返回值。
13.autoload()
實(shí)例化一個(gè)對(duì)象時(shí),如果對(duì)應(yīng)的類不存在,則該方法被掉用。
下面小編就為大家?guī)硪黄斦?a href="http://m.miracleart.cn/code/147.html" target="_blank">PHP面向?qū)ο?/a>中常用的關(guān)鍵字和魔術(shù)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
PHP面向?qū)ο笾谐S玫年P(guān)鍵字???
final
1.final不能修飾成員屬性(類中常量不是用這個(gè)關(guān)鍵字)
2.final只能修飾類和方法
作用:
使用final修飾的類不能被子類繼承
使用final修飾的方法不能被子類覆蓋
用來限制類不被繼承,方法不被覆蓋就使用final
<?php //final修飾的類不能被繼承 final class Person{ var $name; var $age; var $sex; function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function fun1(){ echo $this->name; } } //Student類繼承類用final修飾的Person類,所以會(huì)報(bào)錯(cuò) class Student extends Person{ } $stu=new Student("zs",20,"nan"); $stu->fun1(); ?>
static(靜態(tài)關(guān)鍵字)
1.使用static可以修飾成員屬性和成員方法,不能修飾類
2.用static修飾的成員屬性,可以被同一個(gè)類的所有對(duì)象共享
3.靜態(tài)的數(shù)據(jù)是存在內(nèi)存中的數(shù)據(jù)段中(初始化靜態(tài)段)
4.靜態(tài)的數(shù)據(jù)是在類被第一次加載時(shí)分配到內(nèi)存中的,以后再用到類時(shí)就直接從數(shù)據(jù)段中獲取
5.什么是類被加載?只要在程序中使用到這個(gè)類(有這個(gè)類名出現(xiàn))
6.靜態(tài)方法(static修飾的方法),不能訪問非靜態(tài)的成員(在非靜態(tài)方法中可以訪問靜態(tài)成員)
因?yàn)榉庆o態(tài)的成員,就必須用對(duì)象來訪問,訪問內(nèi)部成員使用的就是$this,而靜態(tài)方法不用使用對(duì)象調(diào)用,也就沒有對(duì)象,$this也就不能代表對(duì)象,非靜態(tài)的成員還必須使用對(duì)象
如果你確定一個(gè)方法中不使用非靜態(tài)成員,則可以將這個(gè)方法聲明為即靜態(tài)方法
注意:靜態(tài)的成員都要使用類名去訪問,不要創(chuàng)建對(duì)象,不用對(duì)象訪問
類名::靜態(tài)成員
如果在類中使用靜態(tài)成員,可以使用self代表本類
const
1.它只能修飾成員屬性
2.類中聲明常量屬性使用const
3.訪問方式和static靜態(tài)成員屬性一樣(在類外部使用 類名::常量 在類內(nèi)部使用 self::常量)
4.常量一定要在聲明的時(shí)候就給初值
<?php //定義一個(gè)類“人們” class Person{ protected $name; protected $age; protected $sex; static $country="中國"; //聲明一個(gè)常量 const RUN="走"; //構(gòu)造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function getCountry(){ //如果在類中使用靜態(tài)成員,可以使用self代表本類 return self::$country; } function say(){ echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>"; } protected function eat(){ echo "吃飯!<br>"; } function run(){ //在類的內(nèi)部使用常量 self::常量 echo self::RUN."<br>"; } //聲明靜態(tài)的方法 static function hello(){ echo "你好<br>"; } }
PHP面向?qū)ο笾谐S玫哪g(shù)方法
call()
作用:調(diào)用對(duì)象中不存在的方法時(shí),就會(huì)出現(xiàn)系統(tǒng)報(bào)錯(cuò),然后程序退出。
什么時(shí)候自動(dòng)調(diào)用:就會(huì)在調(diào)用一個(gè)對(duì)象中不存在的方法時(shí)就會(huì)自動(dòng)調(diào)用
處理一些不存在的錯(cuò)誤調(diào)用
這個(gè)方法需要兩個(gè)參數(shù)
<?php //定義一個(gè)類“人們” class Person{ protected $name; protected $age; protected $sex; static $country="中國"; //聲明一個(gè)常量 const RUN="走"; //構(gòu)造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function getCountry(){ //如果在類中使用靜態(tài)成員,可以使用self代表本類 return self::$country; } function say(){ echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>"; } protected function eat(){ echo "吃飯!<br>"; } function run(){ //在類的內(nèi)部使用常量 self::常量 echo self::RUN."<br>"; } //處理一些不存在的錯(cuò)誤調(diào)用 //就會(huì)在調(diào)用一個(gè)對(duì)象中不存在的方法時(shí)就會(huì)自動(dòng)調(diào)用 function call($methodName,$args){ //$methodName調(diào)用不存在方法的方法名 $args里面的參數(shù) echo "你調(diào)用的方法{$methodName}(參數(shù):"; print_r($args); echo ")不存在<br>"; } //聲明靜態(tài)的方法 static function hello(){ echo "你好<br>"; } } $p=new Person("張三",20,"女"); $p->test(10,20,30); $p->demo("aa","bb"); $p->say(); ?>
toString()
直接輸出對(duì)象引用的時(shí)候自動(dòng)調(diào)用,用來快速獲取字符串表示的最快捷的方法
<?php //定義一個(gè)類“人們” class Person{ protected $name; protected $age; protected $sex; static $country="中國"; //聲明一個(gè)常量 const RUN="走"; //構(gòu)造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function say(){ echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>"; } function toString(){ return self::$country."<br>{$this->name}<br>{$this->age}<br>{$this->sex}<br>".self::RUN; } } $p=new Person("張三",21,"女"); echo $p; ?>
clone()
克隆對(duì)象使用clone()處理
原本(原來的對(duì)象)
復(fù)本(復(fù)制出來的對(duì)象)
clone()就是在克隆對(duì)象時(shí)自動(dòng)調(diào)用的方法
只要一個(gè)對(duì)象一創(chuàng)建,就要有初始化的動(dòng)作,和構(gòu)造方法constuct作用相似
在clone()方法中的$this關(guān)鍵字代表的是復(fù)本的對(duì)象,$that代表原本對(duì)象
<?php //定義一個(gè)類“人們” class Person{ var $name; protected $age; protected $sex; static $country="中國"; //聲明一個(gè)常量 const RUN="走"; //構(gòu)造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function say(){ echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>"; } function clone(){ $this->name="王五"; $this->age=18; $this->sex="男"; } function destruct(){ echo $this->name."<br>"; } } $p=new Person("張三",21,"女"); $p->say(); //這并不能叫做克隆對(duì)象,因?yàn)樵谖鰳?gòu)時(shí)只析構(gòu)一次 /*$p1=$p; $p1->name="李四"; $p1->say();*/ $p1= clone $p; $p1->say(); ?>
autoload()
注意:其它的魔術(shù)方法都是在類中添加起作用,這是唯一一個(gè)不在類中添加的方法
只要在頁面中使用到一個(gè)類,只要用到類名,就會(huì)自動(dòng)將這個(gè)類名傳給這個(gè)參數(shù)
<?php function autoload($className){ include "./test/".$className.".class.php"; } $o=new One; $o->fun1(); $t=new Two; $t->fun2(); $h=new Three; $h->fun3(); ?>
test里的文件
one.class.php
<?php class One{ function fun1(){ echo "The Class One<br>"; } } ?>
two.class.php
<?php class Two{ function fun2(){ echo "The Class Two<br>"; } } ?>
three.class.php
<?php class Three{ function fun3(){ echo "The Class Three<br>"; } } ?>
對(duì)象串行化(序列化):將一個(gè)對(duì)象轉(zhuǎn)為二進(jìn)制串(對(duì)象是存儲(chǔ)在內(nèi)存中的,容易釋放)
使用時(shí)間:
1.將對(duì)象長時(shí)間存儲(chǔ)在數(shù)據(jù)庫或文件中時(shí)
2.將對(duì)象在多個(gè)PHP文件中傳輸時(shí)
serialize(); 參數(shù)是一個(gè)對(duì)象,返回來的就是串行化后的二進(jìn)制串
unserialize(); 參數(shù)就是對(duì)象的二進(jìn)制串,返回來的就是新生成的對(duì)象
sleep()
是在序列化時(shí)調(diào)用的方法
作用:就是可以將一個(gè)對(duì)象部分串行化
只要這個(gè)方法中返回一個(gè)數(shù)組,數(shù)組中有幾個(gè)成員屬性就序列化幾個(gè)成員屬性,如果不加這個(gè)方法,則所有成員都被序列化
wakeup()
是在反序列化時(shí)調(diào)用的方法
也是對(duì)象重新誕生的過程
<?php //定義一個(gè)類“人們” class Person{ var $name; protected $age; protected $sex; static $country="中國"; //聲明一個(gè)常量 const RUN="走"; //構(gòu)造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function say(){ echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>"; } function clone(){ $this->name="王五"; $this->age=18; $this->sex="男"; } //是在序列化時(shí)調(diào)用的方法,可以部分串行化對(duì)象 function sleep(){ return array("name","age"); } //是在反序列化時(shí)調(diào)用的方法,也是對(duì)象重新誕生的過程??梢愿淖兝锩娴闹? function wakeup(){ $this->name="sanzhang"; $this->age=$this->age+1; } function destruct(){ } } ?>
read.php
<?php require "11.php"; $str=file_get_contents("mess.txt"); $p=unserialize($str); echo $p->say(); ?>
write.php
<?php require "11.php"; $p=new Person("張三",18,"男"); $str=serialize($p); file_put_contents("mess.txt",$str); ?>
Atas ialah kandungan terperinci php 面向?qū)ο笾谐S玫年P(guān)鍵字和魔術(shù)方法詳解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

PhphasthreecommentStyles: //,#forsingle-lineand/.../formulti-line.usecommentstoexplainwhycodeexists ,notwhatitdoes.marktodo/fix MeitemsanddisableCodeTemporaryDuringDebugging.avoidover-CommentingsImpleLogic.writeConcise, GrammaticallyCorrectcommentsandu

Langkah -langkah utama untuk memasang PHP pada Windows termasuk: 1. Muat turun versi PHP yang sesuai dan menyahpepijatnya. Adalah disyorkan untuk menggunakan versi Threadsafe dengan versi Apache atau nonthreadSafe dengan nginx; 2. Konfigurasi fail php.ini dan tukar nama php.ini-development atau php.ini-pengeluaran kepada php.ini; 3. Tambah laluan PHP ke laluan pembolehubah persekitaran sistem untuk penggunaan baris arahan; 4. Uji sama ada PHP dipasang dengan jayanya, laksanakan PHP-V melalui baris arahan dan jalankan pelayan terbina dalam untuk menguji keupayaan parsing; 5. Jika anda menggunakan Apache, anda perlu mengkonfigurasi p dalam httpd.conf

Sintaks asas PHP termasuk empat mata utama: 1. Tag PHP mesti berakhir, dan penggunaan tag lengkap disyorkan; 2. Echo dan cetak biasanya digunakan untuk kandungan output, di antaranya Echo menyokong pelbagai parameter dan lebih cekap; 3. Kaedah anotasi termasuk //, # dan //, untuk meningkatkan kebolehbacaan kod; 4. Setiap pernyataan mesti berakhir dengan titik koma, dan ruang dan rehat garis tidak menjejaskan pelaksanaan tetapi mempengaruhi kebolehbacaan. Menguasai peraturan asas ini boleh membantu menulis kod PHP yang jelas dan stabil.

Kunci untuk menulis pernyataan Ifelse Python adalah untuk memahami struktur dan butiran logik. 1. Infrastruktur adalah untuk melaksanakan sekeping kod jika syarat -syarat ditubuhkan, jika tidak, bahagian lain dilaksanakan, yang lain adalah pilihan; 2. Penghakiman pelbagai syarat dilaksanakan dengan ELIF, dan ia dilaksanakan secara berurutan dan dihentikan sebaik sahaja ia dipenuhi; 3. Bersarang jika digunakan untuk penghakiman subdivisi selanjutnya, adalah disyorkan untuk tidak melebihi dua lapisan; 4. Ekspresi ternary boleh digunakan untuk menggantikan Ifelse mudah dalam senario mudah. Hanya dengan memberi perhatian kepada lekukan, perintah bersyarat dan integriti logik, kita boleh menulis kod penghakiman yang jelas dan stabil.

Langkah -langkah untuk memasang Php8 di Ubuntu adalah: 1. Kemas kini senarai pakej perisian; 2. Pasang Php8 dan komponen asas; 3. Semak versi untuk mengesahkan bahawa pemasangan berjaya; 4. Pasang modul tambahan seperti yang diperlukan. Pengguna Windows boleh memuat turun dan menyegarkan pakej zip, kemudian mengubah suai fail konfigurasi, membolehkan sambungan, dan menambah laluan ke pembolehubah persekitaran. Pengguna MACOS mengesyorkan menggunakan HomeBrew untuk memasang, dan melakukan langkah -langkah seperti menambah ketuk, memasang Php8, menetapkan versi lalai dan mengesahkan versi. Walaupun kaedah pemasangan berbeza di bawah sistem yang berbeza, prosesnya jelas, jadi anda boleh memilih kaedah yang tepat mengikut tujuannya.

Phpisasererver-sidescriptinglanguageusedforwebdevelopment, terutamanyafordynamicwebsitesandcmsplatformslikeworderpress.itrunsontheserver, processesdata, interaksiSwithdatabases, danSendshtmltobrowsers.commonusesinusludeusererorhentication, e-komisana

Bagaimana untuk mula menulis skrip PHP pertama anda? Pertama, sediakan persekitaran pembangunan tempatan, pasang XAMPP/MAMP/LAMP, dan gunakan editor teks untuk memahami prinsip berjalan pelayan. Kedua, buat fail yang dipanggil hello.php, masukkan kod asas dan jalankan ujian. Ketiga, belajar menggunakan PHP dan HTML untuk mencapai output kandungan dinamik. Akhirnya, perhatikan kesilapan biasa seperti titik titik koma, isu -isu rujukan, dan kesilapan sambungan fail, dan membolehkan laporan ralat untuk debugging.

TohandlefileoperationsInphp, useappropriatefunctionsandmodes.1.toreAdafile, usefile_get_contents () forsmallfilesorfgets () inaloop forline-by-lineprocessing.2.towritetoafile, useFile_put_contents () forsimpleWritesOrappendingWithTheFile_AppendFlag, orfwrite () w
