php面向?qū)ο蟪绦蛟O(shè)計(jì)
類(lèi):定義一件事物的抽象特點(diǎn)。
對(duì)象:類(lèi)的 實(shí)例。
成員變量 − 定義在類(lèi)內(nèi)部的變量。該變量的值對(duì)外是不可見(jiàn)的,但是可以通過(guò)成員函數(shù)訪(fǎng)問(wèn),在類(lèi)被實(shí)例化為對(duì)象后,該變量即可稱(chēng)為對(duì)象的屬性。var關(guān)鍵字定義成員變量。
多態(tài):相同的函數(shù)或方法可作用于多種類(lèi)型對(duì)象產(chǎn)生不同結(jié)果。
封裝:現(xiàn)實(shí)世界中存在的某個(gè)客體的屬性和行為綁定在一起,并放置在一個(gè)邏輯單元中。
構(gòu)造函數(shù):創(chuàng)建對(duì)象是初始化對(duì)象,為對(duì)象成員變量賦初始值,與new運(yùn)算符一起使用在創(chuàng)建對(duì)象的語(yǔ)句中。
定義類(lèi):
<?php
class site(){
/* 成員變量 */
var $url;
var $title;
/* 成員函數(shù) */
function setUrl($par){
$this->url = $par;
}
function getUrl(){
echo $this->url . PHP_EOL;
}
}
?>
類(lèi)的變量使用 var 來(lái)聲明, 變量也可以初始化值。
函數(shù)定義類(lèi)似 PHP 函數(shù)的定義,但函數(shù)只能通過(guò)該類(lèi)及其實(shí)例化的對(duì)象訪(fǎng)問(wèn)。
變量 $this 代表自身的對(duì)象。
創(chuàng)建對(duì)象:
$baidu = new site; $taobao = new site;
調(diào)用成員方法:
$baidu->setUrl('www.baidu.com');
$baidu->getUrl();
構(gòu)造方法:
function __construct($baidu){
$this->url = $baidu;
}
現(xiàn)在可以這樣實(shí)例化對(duì)象:
$baidu = new site('www.baidu.com');
//調(diào)用成員函數(shù)
$baidu->getUrl()
方法重寫(xiě):
// 從父類(lèi)繼承的方法不能滿(mǎn)足子類(lèi)時(shí),可以對(duì)方法進(jìn)行重寫(xiě)覆蓋(override)
function getUrl() {
echo $this->url . PHP_EOL;
return $this->url;
}
訪(fǎng)問(wèn)控制:
public 公有公有的類(lèi)成員可以在任何地方被訪(fǎng)問(wèn)。protected 受保護(hù)受保護(hù)的類(lèi)成員則可以被其自身以及其子類(lèi)和父類(lèi)訪(fǎng)問(wèn)。private 私有私有的類(lèi)成員則只能被其定義所在的類(lèi)訪(fǎng)問(wèn)。(繼承類(lèi)也不能訪(fǎng)問(wèn))
static關(guān)鍵字:
聲明方法或類(lèi)屬性為static,可以不實(shí)例化而直接訪(fǎng)問(wèn)。靜態(tài)屬性不能通過(guò)一個(gè)類(lèi)已實(shí)例化的對(duì)象來(lái)訪(fǎng)問(wèn)(但靜態(tài)方法可以)。
Final關(guān)鍵字:
如果父類(lèi)中的方法被聲明final,則子類(lèi)不能覆蓋該方法(重寫(xiě));如果類(lèi)被聲明final則該類(lèi)不能被繼承。
調(diào)用父類(lèi)的構(gòu)造方法:
PHP 不會(huì)在子類(lèi)的構(gòu)造方法中自動(dòng)的調(diào)用父類(lèi)的構(gòu)造方法。要執(zhí)行父類(lèi)的構(gòu)造方法,需要在子類(lèi)的構(gòu)造方法中調(diào)用 parent::__construct() 。
<?php
class base{
function __construct(){
print "base類(lèi)構(gòu)造方法".PHP_EOL;
}
}
class sub extends base{
function __construct()
{
parent::__construct();// 子類(lèi)不能自動(dòng)繼承父類(lèi)構(gòu)造方法
print "子類(lèi)sub的構(gòu)造方法".PHP_EOL;
}
}
// 調(diào)用base構(gòu)造方法
$obj1 = new base();
// 調(diào)用base、sub構(gòu)造方法
$obj2 = new sub();
?>
到此這篇關(guān)于php面向?qū)ο蟪绦蛟O(shè)計(jì)的文章就介紹到這了,更多相關(guān)php面向?qū)ο髢?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- PHP面向?qū)ο笾庋b,繼承與多態(tài)詳解
- PHP 面向?qū)ο蟪绦蛟O(shè)計(jì)之類(lèi)屬性與類(lèi)常量實(shí)現(xiàn)方法分析
- php面向?qū)ο笾攸c(diǎn)知識(shí)分享
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)中的self、static、parent關(guān)鍵字用法分析
- php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)重載(overloading)操作詳解
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之構(gòu)造方法和析構(gòu)方法詳解
- php面向?qū)ο蟪绦蛟O(shè)計(jì)介紹
相關(guān)文章
搭建Vim為自定義的PHP開(kāi)發(fā)工具的一些技巧
這篇文章主要介紹了搭建Vim為自定義的PHP開(kāi)發(fā)工具的一些技巧,Vim和Emacs被公認(rèn)為是世界上最強(qiáng)大最具人氣的代碼編輯器,需要的朋友可以參考下2015-12-12
有關(guān)于PHP中常見(jiàn)數(shù)據(jù)類(lèi)型的匯總分享
本文整理了有關(guān)于PHP中常見(jiàn)的數(shù)據(jù)類(lèi)型,感興趣的朋友可以參考下2014-01-01
6種解決PHP Trait屬性沖突問(wèn)題的方法小結(jié)
在PHP中,Trait是一種用于在類(lèi)之間共享方法的方法,然而,Trait中的成員屬性可能會(huì)導(dǎo)致沖突,所以本文為大家整理了6種解決Trait屬性沖突的方法,希望對(duì)大家有所幫助2024-02-02
[PHP]經(jīng)常用到的實(shí)用函數(shù)集合
[PHP]經(jīng)常用到的實(shí)用函數(shù)集合...2007-11-11
setcookie中Cannot modify header information-headers already s
本篇對(duì)setcookie中Cannot modify header information-headers already sent by錯(cuò)誤的解決方法進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下2013-05-05
PHP+mysql實(shí)現(xiàn)的三級(jí)聯(lián)動(dòng)菜單功能示例
這篇文章主要介紹了PHP+mysql實(shí)現(xiàn)的三級(jí)聯(lián)動(dòng)菜單功能,涉及mysql數(shù)據(jù)庫(kù)創(chuàng)建、數(shù)據(jù)添加及php讀取mysql、創(chuàng)建聯(lián)動(dòng)菜單相關(guān)操作技巧,需要的朋友可以參考下2019-02-02

