當前位置:首頁 » 編程語言 » php的面向對象編程

php的面向對象編程

發布時間: 2022-09-17 22:21:00

A. php面向對象編程self和static的區別

在php的面向對象編程中,總會遇到
class test{
public static function test(){
self::func();

static::func();
}

public static function func(){}
}
可你知道self和static的區別么?

其實區別很簡單,只需要寫幾個demo就能懂:

Demo for self:

class Car
{
public static function model(){
self::getModel();
}

protected static function getModel(){
echo "This is a car model";
}
}
Car::model();
Class Taxi extends Car
{
protected static function getModel(){
echo "This is a Taxi model";
}
}
Taxi::model();
得到輸出
This is a car model
This is a car model
可以發現,self在子類中還是會調用父類的方法

Demo for static

class Car
{
public static function model(){
static::getModel();
}

protected static function getModel(){
echo "This is a car model";
}
}

Car::model();

Class Taxi extends Car
{
protected static function getModel(){
echo "This is a Taxi model";
}
}

Taxi::model();
得到輸出
This is a car model
This is a Taxi model
可以看到,在調用static,子類哪怕調用的是父類的方法,但是父類方法中調用的方法還會是子類的方法(好繞嘴。。)

在PHP5.3版本以前,static和self還是有一點區別,具體是什麼,畢竟都是7版本的天下了。就不去了解了。

總結呢就是:self只能引用當前類中的方法,而static關鍵字允許函數能夠在運行時動態綁定類中的方法。

B. php中面向對象編程是什麼意思,到底用在什麼地方,用一個項目中的實際例子來舉例說明

可以這樣理解,
1、類是模具,對象是模具生成的產品,就是印刷術一樣,有了一個字一個字的模子,要印出一個字來就方便了,想印就印,你可以印,我也可以印。
2、在PHP中怎麼做一個模具出來呢,就用 class申明,它就表示你要造一個模具了,但這個模具是做什麼用的,就要在裡面添加函數來表達了,函數名就是這個類的方法名,函數完成的功能就是類的方法。當然函數要實現功能代碼中肯定要用到變數,這個就是所謂的類的成員以或者說成是類的屬性。
3、有了類的屬性有了類的方法,這就完成了一個類的定義,也就是模具做好了,接下來要理解的就是,怎樣去用這個類了。就好像是要看一本書你不可能到印刷廠去把字的模具拿來拼成一頁一頁書來看吧,肯定是在紙上印刷出來。這個印刷的過程就是對象生成的過程也叫類的實例化。PHP中用new關鍵字來生成對象。比如前面定義的類名為 牛,這個牛有一個方法(函數)是:耕地。當然耕地這個函數,要怎樣去實現那是另外要的事情了。現在要說的是怎麼用牛的耕地方法,首先實例化,在PHP中這樣表示:牛1= new 牛。這樣 牛這個類 就有了一個具體可以使喚的牛1了 要想用牛1的耕地方法,意思就是「調用類(對象)的方法」,PHP中這樣表示,牛1->耕地;如果你想要100頭牛,就new100個出來就行,而不用每當要用牛的時候都去寫牛的代碼和牛耕地的代碼了。
4、上面說的是一個理解過程,要實現就要用到具體的PHP的語法了,比如怎樣申明變數 ,怎樣賦值,怎樣用運算符來運算,怎樣寫循環結構,怎樣寫選擇結構,等等 。

C. 什麼是php的面向對象編程

面向對象的程序設計(Object-Oriented Programming,簡記為OOP)立意於創建軟體重用代碼,具備更好地模擬現實世界環境的能力,這使它被公認為是自上而下編程的優勝者。它通過給程序中加入擴展語句,把函數「封裝」進編程所必需的「對象」中。面向對象的編程語言使得復雜的工作條理清晰、編寫容易

D. 能講講PHP面向對象的編程嗎

在面向對象的程序設計(英語:Object-oriented programming,縮寫:OOP)中,對象是一個由信息及對信息進行處理的描述所組成的整體,是對現實世界的抽象。

在現實世界裡我們所面對的事情都是對象,如計算機、電視機、自行車等。

對象的主要三個特性:

  • 對象的行為:可以對 對象施加那些操作,開燈,關燈就是行為。

  • 對象的形態:當施加那些方法是對象如何響應,顏色,尺寸,外型。

  • 對象的表示:對象的表示就相當於身份證,具體區分在相同的行為與狀態下有什麼不同。

  • 比如 Animal(動物) 是一個抽象類,我們可以具體到一隻狗跟一隻羊,而狗跟羊就是具體的對象,他們有顏色屬性,可以寫,可以跑等行為狀態。

E. 如何理解PHP面向對象程序設計

在php的面向對象編程中,總會遇到 class test{ public static function test(){ self::func(); static::func(); } public static function func(){} } 可你知道self和static的區別么? 其實區別很簡單,只需要寫幾個demo就能懂: Demo for self: class Car { public static function model(){ self::getModel(); } protected static function getModel(){ echo "This is a car model"; } } Car::model(); Class Taxi extends Car { protected static function getModel(){ echo "This is a Taxi model"; } } Taxi::model(); 得到輸出 This is a car model This is a car model 可以發現,self在子類中還是會調用父類的方法 Demo for static class Car { public static function model(){ static::getModel(); } protected static function getModel(){ echo "This is a car model"; } } Car::model(); Class Taxi extends Car { protected static function getModel(){ echo "This is a Taxi model"; } } Taxi::model(); 得到輸出 This is a car model This is a Taxi model 可以看到,在調用static,子類哪怕調用的是父類的方法,但是父類方法中調用的方法還會是子類的方法(好繞嘴。。) 在PHP5.3版本以前,static和self還是有一點區別,具體是什麼,畢竟都是7版本的天下了。就不去了解了。 總結呢就是:self只能引用當前類中的方法,而static關鍵字允許函數能夠在運行時動態綁定類中的方法。

F. 說說php面向對象編程時static,public,private,protected 各有什麼意義

staticpublic與publicstatic是等價的,這兩者只是兩個修飾符的順序不同。根據oracle.com教材中第八章的描述,如果兩個或兩個以上的(不同的)欄位修飾符出現在欄位聲明,它們出現的順序需與FieldModifier一致,這只是習慣,但不是必需的。部分修飾符說明:public是訪問許可權修飾符,用於控制外界對類內部成員的訪問,聲明為public的對象成員是完全共有的,外界可以隨意訪問,除此之外還有private,protected和默認。static控制類成員變化的修飾符。static是靜態成員修飾符,其修飾的靜態變數脫離具體對象獨立存在,在內存中之後一份拷貝,所有的對象都公用這一個存儲空間,所以對static修飾的靜態變數進行的修改對該類的所有對象都起作用。static修飾的靜態函數代表所有對象的統一操作,只能調用靜態變數。static是針對面向對象中的「多態」而提出來的,static修飾的靜態成員不存在多態性。附:FieldModifier順序

G. 請教PHP面向對象編程

樓上給的例子,是正確的,只不過聲明訪問許可權的時候用的是PHP4的語法。
修正一下:
-------------------------------------------------------------------

<?php
class A
{
public static $name="張三";
}

class B
{
public static $name="李四";

}

class C
{
public $a;
public $b;

public function __construct()
{
$this->a=new A;
$this->b=new B;
}

public function outputValue()
{
printf("a::name=%s,b::name=%s\n",$this->a->name,$this->b->name);
}
}

$c=new C;
$c->outputValue();

H. php下的面向對象編程和面向過程的區別

區別大了,你應該去了解一下面向對象的三大特性
1、封裝性
2、多態性
3、集成性
面向過程的函數式要實現這些特性相當費力不討好,使用面向對象會讓你的程序更容易管理和二次利用

I. 什麼是php面向對象的編程

php是一門語言,專門用來做網站後台的。面向對象是一種軟體開發方法,更是一種開發理念。面向對象簡單理解就是凡是編程要實現的功能,都將他作為一個對象來看待。這個需要有經驗才能慢慢體會。

J. php如何實現面向對象

通過引入類這個概念 然後用方法來實現功能

<?php

header('Content-type:text/html;charset=utf-8');
//面向對象
classDog{
//屬性
private$name='旺財';
private$age=2;
private$voice='咕咕。。';

//方法
publicfunctionrunToMe(){
echo$this->age,'歲的',$this->name,'正在向我跑來,尾巴還一搖一搖的。<br/>';
}

publicfunctiondrinkWater(){
echo$this->name,'正在喝水,還不時的發出「',$this->voice,'」的聲音。';
}
}

//實例化
$dog=newDog();
//調用方法
$dog->runToMe();
$dog->drinkWater();


//輸出:2歲的旺財正在向我跑來,尾巴還一搖一搖的。旺財正在喝水,還不時的發出///「咕咕。。」的聲音。
?>
熱點內容
唱吧上傳自己的歌 發布:2025-01-11 19:57:35 瀏覽:658
數據的存儲結構包括哪些 發布:2025-01-11 19:56:52 瀏覽:356
資料庫新聞表 發布:2025-01-11 19:55:23 瀏覽:232
壓縮氣翻譯 發布:2025-01-11 19:42:51 瀏覽:744
安卓如何正確卡槍 發布:2025-01-11 19:29:57 瀏覽:751
米家小相機存儲卡 發布:2025-01-11 19:22:30 瀏覽:699
我的世界如何輸地圖密碼 發布:2025-01-11 19:13:21 瀏覽:226
php表單注冊 發布:2025-01-11 18:43:02 瀏覽:162
虛擬存儲功能 發布:2025-01-11 18:43:01 瀏覽:889
ninjaandroid 發布:2025-01-11 18:26:10 瀏覽:527