日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php面向对象的概括图解,简单介绍PHP面向对象

發布時間:2025/3/15 php 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php面向对象的概括图解,简单介绍PHP面向对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面向對象編程的三特點: 封裝性,繼承性(PHP支持單繼承),多態性

PHP的一個類必須在一段代碼段中,即一個“”class?PhpClass{

public?$name;

public?function?toString(){

return?'PhpClass';

}

}

定義成員方法: ?[關鍵詞] function 方法名(){...}

訪問成員方法: 對象名->成員方法

定義成員變量: ?[關鍵字] 成員變量名

訪問成員變量: ?對象名->成員變量

關鍵字可以使用 public、private、protected、static和final中的任意一個

定義類常量: ? ? ?const 常量名

訪問類常量: ? ? 類名::常量名public?$name;

const?PI?=?3.1415926;???//?不能有修飾詞

public?function?toString(){

return?'PhpClass';

}

public?function?printPI(){

echo?PhpClass::PI.'

';??//?直接通過類名訪問

}

public?function?printName(){

echo?$this->name;???//?注意此處的寫法

}

}

$lycClass?=?new?PhpClass();

echo?$lycClass::PI.'

';?//?通過對象訪問

echo?PhpClass::PI.'

';

echo?$lycClass->toString().'

';

$lycClass->name?=?'Lyc';

$lycClass->printName();

構造方法和析構方法:

構造方法: 不寫會默認一個

void __construct([mixed args [,...]])下劃線為兩個

析構方法:

void __destruct(void)下劃線為兩個

php使用垃圾回收機制,不用 unset 函數析構方法也會自動被調用class?PhpClass{

public?$name;

//public?function?__construct(){}?PHP不支持?C++、java?形式上的方法重載

public?function?__construct($name){

$this->name?=?$name;

}

public?function?__destruct(){

echo?'析構一下...';

}

}

$lycClass?=?new?PhpClass('lyc');

echo?$lycClass->name;

//unset($lycClass);?不寫也會調用?__destruct()

繼承和多態

繼承:在PHP中子類可以繼承父類的所有public和protected修飾的成員變量和方法,包括構造方法。

聲明繼承的格式:

class subClass extendes superClass{

......

}

多態:(覆蓋和重載兩種,覆蓋和c++、java中重寫相同)

重載概念和c++、java中的重載概念相同,但實現方式不同,重載實例:class?PhpClass{

public?$nae;

//?PHP中有很多以兩個下劃線開頭的方法,被稱為魔術方法***********************

/*?__call()方法的作用是:?當程序試圖調用不存在或不可見的成員方法時

*?PHP會先調用__call()方法來存儲方法名及其參數。__call()方法包含

*?兩個參數,即方法名和方法參數。其中,方法參數是以數組形式存在的??*/

function?__call($name,?$arguments){

//?通過count($arguments)獲得參數個數

$argNum?=?count($arguments);

//echo?$argNum.'***************

';

if($name?==?'right'){???//?一下方法調用中的?$this->?不可省略

switch($argNum){

case?0:

$this->right0();

break;

case?1:

$this->right1($arguments[0]);

break;

case?2:

$this->right2($arguments[0],$arguments[1]);

break;

default:

echo?'參數可能多了,我不干了...

';

}

}else?if($name?==?'left'){

switch($argNum){

case?1:

$this->left1($arguments[0]);

break;

case?2:

$this->left2($arguments[0],$arguments[1]);

break;

default:

echo?'參數不對,我不干了...

';

}

}else{

echo?'什么也不做...';

}

}

//幾種實現重載的方法,方法名不相同

public?function?right0(){

echo?'right0

';

}

public?function?right1($arg){

echo?'right1?'.$arg.'

';

}

public?function?right2($arg1,$arg2){

echo?'right1?'.$arg1.'?'.$arg2.'

';

}

public?function?left0(){

echo?'left0

';

}

public?function?left1($arg){

echo?'left1?'.$arg.'

';

}

public?function?left2($arg1,$arg2){

echo?'left1?'.$arg1.'?'.$arg2.'

';

}

}

$lyc?=?new?PhpClass();

$lyc->left();???????????//?此處實現重載

$lyc->left('LEFT');

$lyc->left('LEFT','LYC');

$lyc->right();

$lyc->right('RIGHT');

$lyc->right(123,'LYC');

$lyc->right(123,'lyc','right');

總結

以上是生活随笔為你收集整理的php面向对象的概括图解,简单介绍PHP面向对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。