一步一步學習PHP(5) 類和對象
更新時間:2010年02月16日 11:49:41 作者:
OO的強大我不想再多說,如果你不認同OO,那么當你放眼當前流行的語言,有哪個又不支持OO的,也許這個很有說服力了吧。
在這一節(jié)中,我們就來看看在PHP中如何創(chuàng)建一個類和對象。
1. 創(chuàng)建類
在PHP中,創(chuàng)建一個類和在C#/Java中基本類似,閑話少說,給大家看個最簡單的例子:
<?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)建一個People的類,在這里有四個要點說明一下:
第一個是在PHP中,訪問屬性(或者方法)不是用我們所常用的點運算符(.),而是用->。
第二個是在PHP中,方法需要用function在標識,這點于Javascript很類似。
第三點是當我們聲明一個變量時,需要用var,這點也與Javascript非常類似。
第四點是在PHP中,也有著public ,protected,private三個與C#同樣的訪問修飾符,不再贅述。
在這里,我們發(fā)現(xiàn),我們可以用$p直接訪問$name屬性,那么我們需要對其進行控制,方法如下:
class People
{
private $name;
public function GetName()
{
return $this->name;
}
public function SetName($name)
{
$this->name=$name;
}
}
這時,我們在外界就無法訪問到$name屬性了。
還記得我們在上文中提到了可變函數(shù)么?在這里我們一樣可以用可變函數(shù)來訪問對象的方法:
<?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)方法(也可稱之為類方法)與C#中是十分類似的。
<?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. 類常量
在C#中,我們用const來標識常量,在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. 訪問靜態(tài)變量
我們知道,靜態(tài)屬性(方法)屬于類本身,而變量(方法)屬于對象本身,而類本身先于對象而存在,那么我們?nèi)绾蝸碓趧討B(tài)方法中訪問靜態(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)建類
在PHP中,創(chuàng)建一個類和在C#/Java中基本類似,閑話少說,給大家看個最簡單的例子:
復制代碼 代碼如下:
<?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)建一個People的類,在這里有四個要點說明一下:
第一個是在PHP中,訪問屬性(或者方法)不是用我們所常用的點運算符(.),而是用->。
第二個是在PHP中,方法需要用function在標識,這點于Javascript很類似。
第三點是當我們聲明一個變量時,需要用var,這點也與Javascript非常類似。
第四點是在PHP中,也有著public ,protected,private三個與C#同樣的訪問修飾符,不再贅述。
在這里,我們發(fā)現(xiàn),我們可以用$p直接訪問$name屬性,那么我們需要對其進行控制,方法如下:
復制代碼 代碼如下:
class People
{
private $name;
public function GetName()
{
return $this->name;
}
public function SetName($name)
{
$this->name=$name;
}
}
這時,我們在外界就無法訪問到$name屬性了。
還記得我們在上文中提到了可變函數(shù)么?在這里我們一樣可以用可變函數(shù)來訪問對象的方法:
復制代碼 代碼如下:
<?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)方法(也可稱之為類方法)與C#中是十分類似的。
復制代碼 代碼如下:
<?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. 類常量
在C#中,我們用const來標識常量,在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. 訪問靜態(tài)變量
我們知道,靜態(tài)屬性(方法)屬于類本身,而變量(方法)屬于對象本身,而類本身先于對象而存在,那么我們?nèi)绾蝸碓趧討B(tài)方法中訪問靜態(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();
?>
相關(guān)文章
PHP convert_cyr_string()函數(shù)講解
今天小編就為大家分享一篇關(guān)于PHP convert_cyr_string()函數(shù)講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02
用libTemplate實現(xiàn)靜態(tài)網(wǎng)頁的生成
這篇文章主要給大家介紹了關(guān)于用libTemplate實現(xiàn)靜態(tài)網(wǎng)頁的生成的相關(guān)資料,需要的朋友可以參考下2006-10-10

