《PHP應(yīng)用:PHP類相關(guān)知識(shí)點(diǎn)實(shí)例總結(jié)》要點(diǎn):
本文介紹了PHP應(yīng)用:PHP類相關(guān)知識(shí)點(diǎn)實(shí)例總結(jié),希望對您有用。如果有疑問,可以聯(lián)系我們。
PHP教程本文實(shí)例總結(jié)了PHP類相關(guān)知識(shí)點(diǎn).分享給大家供大家參考,具體如下:
PHP教程最終類與最終方法
PHP教程如果父類中的方法被聲明為 final,則子類無法覆蓋該方法.如果一個(gè)類被聲明為 final,則不能被繼承.
PHP教程
final class a{}
class a{
final public function A(){}
}
PHP教程抽象類與抽象方法
PHP教程
abstract class a {
public abstract function func();
}
class A extends a{
public function func(){}
}
PHP教程① 一個(gè)類可以使用abstract聲明為抽象類;抽象類是不能實(shí)例化的類,只用作其他類的父類.
PHP教程
abstract class name{}
PHP教程② 一個(gè)方法可以使用abstract聲明為抽象方法;抽象方法只需要聲明方法頭,不需要大括號部分的方法體.
PHP教程
abstract public function name($val);
PHP教程③ 一個(gè)類中有抽象方法,則該類必須聲明為抽象類.
PHP教程④ 子類繼承自一個(gè)抽象類,則子類不行實(shí)現(xiàn)父類中的所有抽象方法,除非子類也繼續(xù)作為抽象類.
PHP教程⑤ 子類實(shí)現(xiàn)抽象父類的方法時(shí),訪問控制符范圍不能降低,且方法的參數(shù)也必須一致(重寫).
PHP教程接口
PHP教程接口可以看作是抽象類的更高層面的抽象,可以說是抽象類的特例
PHP教程
interface a{
function func();
}
class A implements a {
function func(){}
}
PHP教程類:屬性、類常量、方法
PHP教程抽象類:屬性、類常量、抽象方法
PHP教程接口:接口常量、抽象方法
PHP教程① 相比抽象類,接口可實(shí)現(xiàn)‘多繼承'
PHP教程
class A implements a,b,c{}
PHP教程② 一個(gè)接口只能繼承一個(gè)接口
PHP教程
interface a extends b{}
PHP教程③ 其中方法都是抽象方法不用abstract修飾,即下級類要么實(shí)現(xiàn)接口的方法(implements),要么也聲明為抽象方法
PHP教程重載技術(shù)
PHP教程1. 屬性重載:如果使用一個(gè)不存在的屬性,就會(huì)調(diào)用類中預(yù)先定義好的某個(gè)方法以處理數(shù)據(jù);
PHP教程對于屬性不用的應(yīng)用場景,做如下處理
PHP教程① 取值:自動(dòng)調(diào)用類中的__get()
② 賦值:自動(dòng)調(diào)用類中的__set()
③ 判斷是否存在:自動(dòng)調(diào)用類中的__isset()
④ 銷毀:自動(dòng)調(diào)用類中的__unset()
PHP教程前提是預(yù)先定義好這些方法,否則會(huì)報(bào)錯(cuò)
PHP教程
<?php
class bee{
public $ol = array();
public function __get($key){
if(isset($this->ol[$key])){
return $this->ol[$key];
}
return $key.' not exists';
}
public function __set($key,$val){
$this->ol[$key] = $val;
}
public function __isset($key){
if(isset($this->ol[$key])){
return true;
}
return false;
}
public function __unset($key){
unset($this->ol[$key]);
}
}
$obj = new bee();
echo $obj->one;
echo '<br>';
$obj->one = 1;
echo $obj->one;
echo '<br>';
var_dump(isset($obj->one));
PHP教程運(yùn)行結(jié)果如下:
PHP教程
one not exists
1
boolean true
PHP教程2. 方法重載:如果使用一個(gè)不存在的方法,就會(huì)調(diào)用類中預(yù)先定義好的某個(gè)方法以處理該行為;
PHP教程對于方法不用的應(yīng)用場景,做如下處理
PHP教程① 在對象中調(diào)用不可訪問的方法:__call()
② 靜態(tài)方式中調(diào)用不可訪問方法:__callStatic()
PHP教程
<?php
class bee{
public function __call($name,$arr){
echo '<br>';
echo 'function '.$name.' not exist';
}
static function __callStatic($name,$arr){
echo '<br>';
echo 'function '.$name.' not exist';
}
/*public function __call($name,$arr){
$num = count($arr);
if($num<1){
$name();
}else{
$name = $name.'_one';
$name($arr[0]);
}
}*/
}
$obj->func();
bee::staFunc();
/*$obj->func(1);
function func(){
echo '<br>';
echo 'no.0';
}
function func_one($val){
echo '<br>';
echo 'no.'.$val;
}*/
PHP教程運(yùn)行結(jié)果如下:
PHP教程
function func not exist
function staFunc not exist
PHP教程注意:以上方法都屬于魔術(shù)方法,都帶有參數(shù)
PHP教程更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
PHP教程希望本文所述對大家PHP程序設(shè)計(jì)有所幫助.
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/3180.html