㈠ php面向對象的學習!!!!迷惑中!~~~希望大家可以多多指點~
這個問題我曾經也有過。你的確還沒有面向對象的概念。
你應該知道自定義函數的目的是什麼。封裝函數。方便下次重復使用。
如果你長時間從事於PHP開發。你就能理解了。
在PHP里。類可以看作是自定義函數的進一步封裝。在針對一功能的情況下用類比較方便。思路更清晰。寫作效率更高。
我舉個例子:
比如我不喜歡用MYSQL。我喜歡用文本型數據存儲方式。但每次都寫打開文件。寫入文件。挺煩的。。
我就寫了一個文件操作類,代碼幾乎就變成了這樣
文件->選擇(data.txt);
$數據=文件->列表(分頁);
for(){
......
}
在寫入頁的時候,我也可以
文件->選擇(data.txt);
文件->寫入($_POST);
這樣思路更清晰,而且這個類以後可以在很多地方使用。
㈡ 綜合應用資料庫知識和用面向對象編程技術在PHP程序中創建出學生類
PHP使用面向對象的編程方式來編寫資料庫操作類
步驟1:創建一個PHP的頁面「config.php」定義資料庫相關的參數
<?php // config.php
define(?DB_USER?, "username");
define(?DB_PASSWORD?, "password");
define(?DB_DATABASE?, "database name");
define(?DB_SERVER?, "ip address of database server");
?>
第2步:創建一個PHP的類,用於連接資料庫,命名為「db_connect.php」
<?php // db_connnect.php
class DB_Connect {
private $con;
// constructor
function __construct() {
// connecting to database
$this->con = $this->connect();
}
//Function to connect with database
private function connect() {
// import database connection variables
require_once __DIR__.?/config.php?;
try {
$conn = new PDO(?mysql:host=?.DB_SERVER .?;
dbname=?.DB_DATABASE, DB_USER, DB_PASSWORD);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo ?ERROR: ? . $e->getMessage();
}
return $conn;
}
public function getDbConnection(){
return $this->con;
}
}
?>
第3步:創建一個類,它包含了所有的功能,為您實現SQL查詢,命名為「db_functions.php」
調用裡面的函數進行SQL查詢、以促進可重用性和可維護性
<?php // db_functions.php
class DB_Functions {
private $con;
// constructor
function __construct() {
require_once __DIR__.?/db_connect.php?;
// connecting to database
$db = new DB_Connect();
$this->con = $db->getDbConnection();
}
public function selectUser($id) {
try {
$stmt = $this->con->prepare(?SQL語句?);
$params = array(?:id? => $id);
$stmt->execute($params);
return $stmt;
} catch(PDOException $e) {
echo ?ERROR: ? . $e->getMessage();
}
}
public function otherSQLfunction($parameter) {
// other sql code
}
}
第4步:最後,在你其他的PHP文件裡面只需要簡單地調用「db_functions.php」的方法
<?php
require_once __DIR__.?/db_functions.php?;
$db = new DB_Functions();
$result = $db->selectUser($id);
// other code
?>
㈢ php介面開發教程
PHP與大多數面向對象編程語言一樣,不支持多重繼承.也就是說每個類只能繼承一個父類.為了解決這個問題,PHP引入了介面,介面的思想是指定了一個實現了該介面的類必須實現的一系列方法.介面是一種特殊的抽象類,抽象類又是一種特殊的類,所以介面也是一種特殊的類,為什麼說介面是一種特殊的抽象類呢?如果一個抽象類裡面的所有的方法都是抽象方法,那麼我們就換一種聲明方法使用「介面「;也就是說介面裡面所有的方法必須都是聲明為抽象方法,另外介面裡面不能聲明變數(但可聲明常量constant),而且介面裡面所有的成員都是public許可權的。所以子類在實現的時候也一定要使用public許可權實限。
聲明一個類的時候我們使用的關鍵字是」class」,而介面一種特殊的類,使用的關鍵字是「interface」;
類的定義: class 類名{ … } ,介面的聲明:interface 介面名{ …}
代碼
代碼
<?php
//定義一個介面使用interface關鍵字,「One」為介面名稱
interface One
{
//定義一個常量
const constant = 'constant value';
//定義了一個抽象方法」fun1」
public function fun1();
//定義了抽象方法」fun2」
public function fun2();
}
?>
上例中定義了一個介面」one」,裡面聲明了兩個抽象方法「fun1」和」fun2」,因為介面裡面所有的方法都是抽象方法,所以在聲明抽象方法的時候就不用像抽象類那樣使用」abstract」這個關鍵字了,默認的已經加上這個關鍵字,另外在介面里邊的」public」這個訪問許可權也可以去掉,因為默認就是public的,因為介面里所有成員都要是公有的,所在對於介面裡面的成員我們就不能使用「private」的和」protected」的許可權了,都要用public或是默認的。另外在介面裡面我們也聲明了一個常量「constant「, 因為在介面裡面不能用變數成員,所以我們要使用const這個關鍵字聲明。
因為介面是一種特殊的抽象類,裡面所有的方法都是抽象方法,所以介面也不能產生實例對象; 它也做為一種規范,所有抽象方法需要子類去實現。
我們可以使用」extends」關鍵字讓一個介面去繼承另一個介面:
<?php
//使用」extends」繼承另外一個介面
interface Two extends One
{
function fun3();
function fun4();
}
?>
而我們定義一介面的子類去實現介面中全部抽象方法使用的關鍵字是」implements」,而不是我們前面所說的」extends」;
代碼
<?php
//使用「implements」這個關鍵字去實現介面中的抽象方法 介面和類之間
class Three implements One
{
function fun1()
{
…
}
function fun2()
{
…
}
}
//實現了全部方法,我們去可以使用子類去實例化對象了
$three=new Three();
?>
我們也可以使用抽象類,去實現介面中的部分抽象方法,但要想實例化對象,這個抽象類還要有子類把它所有的抽象方法都實現才行;
在前面我們說過,PHP是單繼承的,一個類只能有一父類,但是一個類可以實現多個介面,就相當於一個類要遵守多個規范,就像我們不僅要遵守國家的法律,如果是在學校的話,還要遵守學校的校規一樣;
<?php
//使用implements實現多個介面
class Four implemtns 介面一, 介面二, ….
{
//必須把所有介面中的方法都要實現才可以實例化對象。
}
?>
PHP中不僅一個類可以實現多個介面,也可以在繼承一個類的同時實現多個介面, 一定要先繼承類再去實現介面;
<?php
//使用extends繼承一個類,使用implements實現多個介面
class Four extends 類名一 implemtns 介面一, 介面二, ….
{
//所有介面中的方法都要實現才可以實例化對象
………
}
?>
㈣ php中面向對象編程是什麼意思,到底用在什麼地方,用一個項目中的實際例子來舉例說明
可以這樣理解,
1、類是模具,對象是模具生成的產品,就是印刷術一樣,有了一個字一個字的模子,要印出一個字來就方便了,想印就印,你可以印,我也可以印。
2、在PHP中怎麼做一個模具出來呢,就用 class申明,它就表示你要造一個模具了,但這個模具是做什麼用的,就要在裡面添加函數來表達了,函數名就是這個類的方法名,函數完成的功能就是類的方法。當然函數要實現功能代碼中肯定要用到變數,這個就是所謂的類的成員以或者說成是類的屬性。
3、有了類的屬性有了類的方法,這就完成了一個類的定義,也就是模具做好了,接下來要理解的就是,怎樣去用這個類了。就好像是要看一本書你不可能到印刷廠去把字的模具拿來拼成一頁一頁書來看吧,肯定是在紙上印刷出來。這個印刷的過程就是對象生成的過程也叫類的實例化。PHP中用new關鍵字來生成對象。比如前面定義的類名為 牛,這個牛有一個方法(函數)是:耕地。當然耕地這個函數,要怎樣去實現那是另外要的事情了。現在要說的是怎麼用牛的耕地方法,首先實例化,在PHP中這樣表示:牛1= new 牛。這樣 牛這個類 就有了一個具體可以使喚的牛1了 要想用牛1的耕地方法,意思就是「調用類(對象)的方法」,PHP中這樣表示,牛1->耕地;如果你想要100頭牛,就new100個出來就行,而不用每當要用牛的時候都去寫牛的代碼和牛耕地的代碼了。
4、上面說的是一個理解過程,要實現就要用到具體的PHP的語法了,比如怎樣申明變數 ,怎樣賦值,怎樣用運算符來運算,怎樣寫循環結構,怎樣寫選擇結構,等等 。
㈤ php怎麼面向對象開發
面向對象就是一種有別於面向過程的編程思想,具體可以看教程。可以上騰訊課堂,網易雲或者慕課網學習。
㈥ 能講講PHP面向對象的編程嗎
在面向對象的程序設計(英語:Object-oriented programming,縮寫:OOP)中,對象是一個由信息及對信息進行處理的描述所組成的整體,是對現實世界的抽象。
在現實世界裡我們所面對的事情都是對象,如計算機、電視機、自行車等。
對象的主要三個特性:
對象的行為:可以對 對象施加那些操作,開燈,關燈就是行為。
對象的形態:當施加那些方法是對象如何響應,顏色,尺寸,外型。
對象的表示:對象的表示就相當於身份證,具體區分在相同的行為與狀態下有什麼不同。
比如 Animal(動物) 是一個抽象類,我們可以具體到一隻狗跟一隻羊,而狗跟羊就是具體的對象,他們有顏色屬性,可以寫,可以跑等行為狀態。
㈦ 請教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的面向對象編程
面向對象的程序設計(Object-Oriented Programming,簡記為OOP)立意於創建軟體重用代碼,具備更好地模擬現實世界環境的能力,這使它被公認為是自上而下編程的優勝者。它通過給程序中加入擴展語句,把函數「封裝」進編程所必需的「對象」中。面向對象的編程語言使得復雜的工作條理清晰、編寫容易