一步一步學(xué)習(xí)PHP(5) 類(lèi)和對(duì)象
更新時(shí)間:2010年02月16日 11:49:41 作者:
OO的強(qiáng)大我不想再多說(shuō),如果你不認(rèn)同OO,那么當(dāng)你放眼當(dāng)前流行的語(yǔ)言,有哪個(gè)又不支持OO的,也許這個(gè)很有說(shuō)服力了吧。
在這一節(jié)中,我們就來(lái)看看在PHP中如何創(chuàng)建一個(gè)類(lèi)和對(duì)象。
1. 創(chuàng)建類(lèi)
在PHP中,創(chuàng)建一個(gè)類(lèi)和在C#/Java中基本類(lèi)似,閑話少說(shuō),給大家看個(gè)最簡(jiǎn)單的例子:
<?php
class People
{
var $name;
public function GetName()
{
return $this->name;
}
public function SetName($name)
{
$this->name=$name;
}
}
$p=new People();
$p->SetName("kym");
echo($p->GetName());
?>
這里,我們就創(chuàng)建一個(gè)People的類(lèi),在這里有四個(gè)要點(diǎn)說(shuō)明一下:
第一個(gè)是在PHP中,訪問(wèn)屬性(或者方法)不是用我們所常用的點(diǎn)運(yùn)算符(.),而是用->。
第二個(gè)是在PHP中,方法需要用function在標(biāo)識(shí),這點(diǎn)于Javascript很類(lèi)似。
第三點(diǎn)是當(dāng)我們聲明一個(gè)變量時(shí),需要用var,這點(diǎn)也與Javascript非常類(lèi)似。
第四點(diǎn)是在PHP中,也有著public ,protected,private三個(gè)與C#同樣的訪問(wèn)修飾符,不再贅述。
在這里,我們發(fā)現(xiàn),我們可以用$p直接訪問(wèn)$name屬性,那么我們需要對(duì)其進(jìn)行控制,方法如下:
class People
{
private $name;
public function GetName()
{
return $this->name;
}
public function SetName($name)
{
$this->name=$name;
}
}
這時(shí),我們?cè)谕饨缇蜔o(wú)法訪問(wèn)到$name屬性了。
還記得我們?cè)谏衔闹刑岬搅丝勺兒瘮?shù)么?在這里我們一樣可以用可變函數(shù)來(lái)訪問(wèn)對(duì)象的方法:
<?php
class People
{
private $name;
public function GetName()
{
return $this->name;
}
public function SetName($name)
{
$this->name=$name;
}
}
$p=new People();
$get="GetName";
$set="SetName";
$p->$set("kym");
echo($p->$get());
?>
2. 靜態(tài)方法(屬性)
在PHP中聲明靜態(tài)方法(也可稱(chēng)之為類(lèi)方法)與C#中是十分類(lèi)似的。
<?php
class DataBase
{
public static function CreateConnection()
{
echo("Success");
}
}
DataBase::CreateConnection();
?>
同理,聲明靜態(tài)屬性也是一樣。
<?php
class DataBase
{
static $connectionString="http://127.0.0.1";
public static function CreateConnection()
{
echo("Success");
}
}
echo(DataBase::$connectionString);
DataBase::CreateConnection();
?>
3. 類(lèi)常量
在C#中,我們用const來(lái)標(biāo)識(shí)常量,在PHP中也是一樣。
<?php
class DataBase
{
const AUTHOR="kym";
static $connectionString="http://127.0.0.1";
public static function CreateConnection()
{
echo("Success");
}
}
echo(DataBase::AUTHOR);
echo(DataBase::$connectionString);
DataBase::CreateConnection();
?>
4. 訪問(wèn)靜態(tài)變量
我們知道,靜態(tài)屬性(方法)屬于類(lèi)本身,而變量(方法)屬于對(duì)象本身,而類(lèi)本身先于對(duì)象而存在,那么我們?nèi)绾蝸?lái)在動(dòng)態(tài)方法中訪問(wèn)靜態(tài)的變量(方法)呢?在PHP中,為我們提供了self關(guān)鍵字。
<?php
class DataBase
{
const AUTHOR="kym";
static $connectionString="http://127.0.0.1";
public static function CreateConnection()
{
echo(self::$connectionString." Success");
}
}
echo(DataBase::AUTHOR);
echo(DataBase::$connectionString);
DataBase::CreateConnection();
?>
1. 創(chuàng)建類(lèi)
在PHP中,創(chuàng)建一個(gè)類(lèi)和在C#/Java中基本類(lèi)似,閑話少說(shuō),給大家看個(gè)最簡(jiǎn)單的例子:
復(fù)制代碼 代碼如下:
<?php
class People
{
var $name;
public function GetName()
{
return $this->name;
}
public function SetName($name)
{
$this->name=$name;
}
}
$p=new People();
$p->SetName("kym");
echo($p->GetName());
?>
這里,我們就創(chuàng)建一個(gè)People的類(lèi),在這里有四個(gè)要點(diǎn)說(shuō)明一下:
第一個(gè)是在PHP中,訪問(wèn)屬性(或者方法)不是用我們所常用的點(diǎn)運(yùn)算符(.),而是用->。
第二個(gè)是在PHP中,方法需要用function在標(biāo)識(shí),這點(diǎn)于Javascript很類(lèi)似。
第三點(diǎn)是當(dāng)我們聲明一個(gè)變量時(shí),需要用var,這點(diǎn)也與Javascript非常類(lèi)似。
第四點(diǎn)是在PHP中,也有著public ,protected,private三個(gè)與C#同樣的訪問(wèn)修飾符,不再贅述。
在這里,我們發(fā)現(xiàn),我們可以用$p直接訪問(wèn)$name屬性,那么我們需要對(duì)其進(jìn)行控制,方法如下:
復(fù)制代碼 代碼如下:
class People
{
private $name;
public function GetName()
{
return $this->name;
}
public function SetName($name)
{
$this->name=$name;
}
}
這時(shí),我們?cè)谕饨缇蜔o(wú)法訪問(wèn)到$name屬性了。
還記得我們?cè)谏衔闹刑岬搅丝勺兒瘮?shù)么?在這里我們一樣可以用可變函數(shù)來(lái)訪問(wèn)對(duì)象的方法:
復(fù)制代碼 代碼如下:
<?php
class People
{
private $name;
public function GetName()
{
return $this->name;
}
public function SetName($name)
{
$this->name=$name;
}
}
$p=new People();
$get="GetName";
$set="SetName";
$p->$set("kym");
echo($p->$get());
?>
2. 靜態(tài)方法(屬性)
在PHP中聲明靜態(tài)方法(也可稱(chēng)之為類(lèi)方法)與C#中是十分類(lèi)似的。
復(fù)制代碼 代碼如下:
<?php
class DataBase
{
public static function CreateConnection()
{
echo("Success");
}
}
DataBase::CreateConnection();
?>
同理,聲明靜態(tài)屬性也是一樣。
復(fù)制代碼 代碼如下:
<?php
class DataBase
{
static $connectionString="http://127.0.0.1";
public static function CreateConnection()
{
echo("Success");
}
}
echo(DataBase::$connectionString);
DataBase::CreateConnection();
?>
3. 類(lèi)常量
在C#中,我們用const來(lái)標(biāo)識(shí)常量,在PHP中也是一樣。
復(fù)制代碼 代碼如下:
<?php
class DataBase
{
const AUTHOR="kym";
static $connectionString="http://127.0.0.1";
public static function CreateConnection()
{
echo("Success");
}
}
echo(DataBase::AUTHOR);
echo(DataBase::$connectionString);
DataBase::CreateConnection();
?>
4. 訪問(wèn)靜態(tài)變量
我們知道,靜態(tài)屬性(方法)屬于類(lèi)本身,而變量(方法)屬于對(duì)象本身,而類(lèi)本身先于對(duì)象而存在,那么我們?nèi)绾蝸?lái)在動(dòng)態(tài)方法中訪問(wèn)靜態(tài)的變量(方法)呢?在PHP中,為我們提供了self關(guān)鍵字。
復(fù)制代碼 代碼如下:
<?php
class DataBase
{
const AUTHOR="kym";
static $connectionString="http://127.0.0.1";
public static function CreateConnection()
{
echo(self::$connectionString." Success");
}
}
echo(DataBase::AUTHOR);
echo(DataBase::$connectionString);
DataBase::CreateConnection();
?>
您可能感興趣的文章:
- Javascript學(xué)習(xí)筆記5 類(lèi)和對(duì)象
- C++中對(duì)象的賦值與復(fù)制操作詳細(xì)解析
- C++對(duì)象的動(dòng)態(tài)建立與釋放詳解
- C++中對(duì)象的常引用總結(jié)
- C++中的對(duì)象指針總結(jié)
- JS創(chuàng)建類(lèi)和對(duì)象的兩種不同方式
- C++模板類(lèi)的用法實(shí)例
- C++封裝線程類(lèi)的實(shí)現(xiàn)方法
- C++基礎(chǔ)入門(mén)教程(六):為什么創(chuàng)建類(lèi)的時(shí)候要用new?
- JavaScript定義類(lèi)和對(duì)象的方法
- C++實(shí)現(xiàn)的鏈表類(lèi)實(shí)例
- C++之類(lèi)的靜態(tài)變量
- C++中的string類(lèi)的用法小結(jié)
- C++類(lèi)和對(duì)象實(shí)例解析(二)
相關(guān)文章
php ajax 靜態(tài)分頁(yè)過(guò)程形式
php ajax 靜態(tài)分頁(yè)過(guò)程形式,擴(kuò)展性不是很好 ,但比較適合新手學(xué)習(xí)。2011-09-09Extended CHM PHP 語(yǔ)法手冊(cè)之 DIY
Extended CHM PHP 語(yǔ)法手冊(cè)之 DIY...2006-10-10PHP 存取 MySQL 數(shù)據(jù)庫(kù)的一個(gè)例子
PHP 存取 MySQL 數(shù)據(jù)庫(kù)的一個(gè)例子...2006-10-10一步一步學(xué)習(xí)PHP(5) 類(lèi)和對(duì)象
OO的強(qiáng)大我不想再多說(shuō),如果你不認(rèn)同OO,那么當(dāng)你放眼當(dāng)前流行的語(yǔ)言,有哪個(gè)又不支持OO的,也許這個(gè)很有說(shuō)服力了吧。2010-02-02基于數(shù)據(jù)庫(kù)的在線人數(shù),日訪問(wèn)量等統(tǒng)計(jì)
基于數(shù)據(jù)庫(kù)的在線人數(shù),日訪問(wèn)量等統(tǒng)計(jì)...2006-10-10