php面向對象例子,php面向對象程序設計

本文目錄一覽:

php面向對象全攻略 (三)特殊的引用“$this”的使用

7.特殊的引用“$this”的使用

現在我們知道了如何訪問對象中的成員,是通過“對象-成員”的方式訪問的,這是在對

象的外部去訪問對象中成員的形式,那麼如果我想在對象的內部,讓對象里的方法訪問本對

象的屬性,或是對象中的方法去調用本對象的其它方法這時我們怎麼辦?因為對象裡面的所

有的成員都要用對象來調用,包括對象的內部成員之間的調用,所以在PHP

裡面給我提供了

一個本對象的引用$this,每個對象裡面都有一個對象的引用$this

來代表這個對象,完成對象

內部成員的調用,this

的本意就是“這個”的意思,上面的實例裡面,我們實例化三個實例

對象$P1、$P2、$P3,這三個對象裡面各自存在一個$this

分別代表對象$p1、$p2、$p3。

通過上圖我們可以看到,$this

就是對象內部代表這個對象的引用,在對象內部和調用本

對象的成員和對象外部調用對象的成員所使用的方式是一樣的。

$this-屬性$this-name;

$this-age;

$this-sex;

$this-方法$this-say();

$this-run();

修改一下上面的實例,讓每個人都說出自己的名字,性別和年齡:

代碼片段

複製代碼

代碼如下:

?php

class

Person{

//下面是人的成員屬性

var

$name;

//人的名字

var

$sex;

//人的性別

var

$age;

//人的年齡

//下面是人的成員方法

function

say(){//這個人可以說話的方法

echo

“我的名字叫:”.$this-name.”

性別:”.$this-sex.”

我的年齡是:”.$this-age.”br”;

}

function

run(){

//這個人可以走路的方法

echo

“這個人在走路”;

}

}

$p1=new

Person();

//創建實例對象$p1

$p2=new

Person();

//創建實例對象$p2

$p3=new

Person();

//創建實例對象$p3

//下面三行是給$p1對象屬性賦值

$p1-name=”張三”;

$p1-sex=”男”;

$p1-age=20;

//下面訪問$p1對象中的說話方法

$p1-say();

//下面三行是給$p2對象屬性賦值

$p2-name=”李四”;

$p2-sex=”女”;

$p2-age=30;

//下面訪問$p2對象中的說話方法

$p2-say();

//下面三行是給$p3對象屬性賦值

$p3-name=”王五”;

$p3-sex=”男”;

$p3-age=40;

//下面訪問$p3對象中的說話方法

$p3-say();

?

輸出結果

我的名字叫:張三性別:男我的年齡是:20

我的名字叫:李四性別:女我的年齡是:30

我的名字叫:王五性別:男我的年齡是:40

分析一下這個方法:

代碼片段

function

say(){

//這個人可以說話的方法

echo

“我的名字叫:”.$this-name.”

性別:”.$this-sex.”

我的年齡是:”.$this-age.”br”;

}

在$p1、$p2

和$p3

這三個對象中都有say()這個方法,$this

分別代表這三個對象,調用相應的屬性,打印出屬性的值,這就是在對象內部訪問對象屬性的方式,如果相在say()這個方

法里調用run()這個方法也是可以的,在say()這個方法中使用$this-run()的方式來完成調用。

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

可以這樣理解,

1、類是模具,對象是模具生成的產品,就是印刷術一樣,有了一個字一個字的模子,要印出一個字來就方便了,想印就印,你可以印,我也可以印。

2、在PHP中怎麼做一個模具出來呢,就用 class申明,它就表示你要造一個模具了,但這個模具是做什麼用的,就要在裡面添加函數來表達了,函數名就是這個類的方法名,函數完成的功能就是類的方法。當然函數要實現功能代碼中肯定要用到變量,這個就是所謂的類的成員以或者說成是類的屬性。

3、有了類的屬性有了類的方法,這就完成了一個類的定義,也就是模具做好了,接下來要理解的就是,怎樣去用這個類了。就好像是要看一本書你不可能到印刷廠去把字的模具拿來拼成一頁一頁書來看吧,肯定是在紙上印刷出來。這個印刷的過程就是對象生成的過程也叫類的實例化。PHP中用new關鍵字來生成對象。比如前面定義的類名為 牛,這個牛有一個方法(函數)是:耕地。當然耕地這個函數,要怎樣去實現那是另外要的事情了。現在要說的是怎麼用牛的耕地方法,首先實例化,在PHP中這樣表示:牛1= new 牛。這樣 牛這個類 就有了一個具體可以使喚的牛1了 要想用牛1的耕地方法,意思就是“調用類(對象)的方法”,PHP中這樣表示,牛1-耕地;如果你想要100頭牛,就new100個出來就行,而不用每當要用牛的時候都去寫牛的代碼和牛耕地的代碼了。

4、上面說的是一個理解過程,要實現就要用到具體的PHP的語法了,比如怎樣申明變量 ,怎樣賦值,怎樣用運算符來運算,怎樣寫循環結構,怎樣寫選擇結構,等等 。

php面向對象面試題

其實這個問題很簡單啦,兩分鐘就可以請清楚啦,我在這裡先說一下思想;

首先你得寫一個類表示人,如:person類;

小劉、小張、MrJosnon、MrJohn等都是這個person類的一個實例;

並且人力資源部問問題這是這個person類當中的一個方法,然後每個人都可以繼承自person類,然後又有各自己相關方法等;

然後你得寫一個國家類,如:Country類,然後中國是這個國家的一個具體實例;

然後你得寫一個城市類,如:City類;然後上海是City類的一個實例;

同樣,你得寫一個公司類,如:Company類,然後那兩個公司又是Company類的兩個實例,並且你還得寫一個部門類,如:Depart類,然後人力資源部是部門的一個實例;

上面只是這個問題的中文描述,你可以參考一下;

請教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();

php面向對象有什麼用

php程序編寫分總分兩種方式,分別為面向過程和面向對象,用兩者比較你會更容易理解些

以下數據庫操作為例:

面向過程:

$conn = mysql_connect(‘127.0.0.1’, ‘root’, ‘123456’) or die(‘連接不成功!’);

mysql_select_db(‘test’, $conn) or die(‘數據庫不存在!’);

$queryid = mysql_query(“select * from sort”);

while ($rs = mysql_fetch_assoc($queryid)) {

echo $rs[‘name’], ‘br’;

}

過程的代碼給人感覺比較亂,不易管理,以下實現以上代碼一樣的功能,但代碼清楚多了。

面向對象就是把常用的功能封裝為一個類,類由屬性和方法組成:

把以上過程代碼封裝成類,以文件形式保存為db.php

class db {

private $conn; //屬性

private $queryid; //屬性

//構造函數

public function db($host, $dbuser, $dbpasswd, $dbname) {

$this-conn = mysql_connect($host, $dbuser, $dbpasswd) or die(‘連接不成功!’);

mysql_select_db($dbname, $this-conn) or die(‘數據庫不存在!’);

}

//查詢方法

public function query($sql) {

$this-queryid = mysql_query($sql, $this-conn);

}

public function fetch_assoc() {

return mysql_fetch_assoc($this-queryid);

}

}

//在a.php文件中實例化,代碼使用變得簡結和容易理解,代碼的重用性

inclode(‘db.php’);

$db = new db(‘127.0.0.1’, ‘root’, ‘123456’, ‘test’);

$db-query(“select * from sort”);

while ($rs = $db-fetch_assoc()) {

echo $rs[‘name’], ‘br’;

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/249774.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 17:12
下一篇 2024-12-12 17:12

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 面向對象編程、類和對象

    面向對象編程(Object-Oriented Programming, OOP)是一種編程方法,它將現實世界中的事物抽象為對象(Object),對象的屬性和方法被封裝成類(Clas…

    編程 2025-04-29
  • Python計算機語言程序設計用法介紹

    Python是一種高級編程語言,其設計目的是讓程序員能夠在編寫代碼時更加關注算法的設計,而不必過多地考慮語言細節。Python被廣泛應用於網站開發、數據科學、人工智能、機器學習等各…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • 使用面向對象程序設計方法改寫猜數字遊戲Python程序

    本文將從以下多個方面對猜數字遊戲程序功能要求,使用面向對象程序設計方法改寫該程序Python做詳細的闡述。 一、遊戲規則 1、遊戲開始時,程序隨機生成一個 1 到 100 之間的整…

    編程 2025-04-28
  • Python計數循環例子用法介紹

    在這篇文章中,我們將為您提供有關Python計數循環的一些詳細信息,並為您提供示例和代碼,讓您更深入地了解如何使用Python進行計數循環。 一、什麼是計數循環? 計數循環是編程中…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • 匯率兌換程序和溫度轉換程序設計

    這篇文章將從多個方面詳細闡述如何設計匯率兌換程序和溫度轉換程序。這些程序可以幫助人們更方便地計算貨幣匯率和溫度轉換,對於需要頻繁出差或者經常進行氣象預報的人來說,這些程序將非常有用…

    編程 2025-04-27

發表回復

登錄後才能評論