Class
Class
基本用法class
class City{
public $name;
public $mayer;
public $population;
public $location;
}
想像一下,建立新城市時,需要的種種資訊,都在名為 City
的 class
裡預先定義出來。
new
物化 (instanciate) class
形成真的物件 (object)<?php /*承接上述程式碼*/
$tpe=new City;
$kh=new City;
?>
建立 $tpe
及 $kh
兩座城市。
<?php /*承接上述程式碼*/
$tpe->name='台北';
$tpe->mayer='郝龍斌';
$tpe->population='260 萬';
$tpe->location='台灣北部';
$kh->name='高雄';
$kh->mayer='陳菊';
?>
使用 ->
符號指定個別物件的實際內容;現在兩座城市各有不同的資訊了,然而它們都是由同一個 class
的定義所建立出來的。
指定 class
裡的變數 (variables) 稱為屬性,而 class
裡的函數 (functions) 稱為方法 (methods) 。目前只以變數定義了屬性,存取變數型的屬性不需加 $
符號。定義變數時, public
前置詞為必要的,稍後再解釋。
->
符號取得物件的屬性<?php /*承接上述程式碼*/
echo '<ul>';
echo "<li>$tpe->name</li>";
echo "<li>$tpe->mayer</li>";
echo "<li>$tpe->population</li>";
echo '</ul>';
?>
結果
<ul>
<li>台北</li>
<li>郝龍斌</li>
<li>260 萬</li>
</ul>
class
内的常數 (constant
)class City{
const CITY='城市';
const MAYER='市長';
const GOV='市政府';
const POPULATION='人口';
const LOCATION='位置';
public $name;
public $mayer;
public $population;
public $location;
}
class
本身即是物件,以 ::
符號取得常數屬性<?php /*承接前述程式碼*/
echo '<ul>';
echo '<li>', City::CITY, '</li>';
echo '<li>', City::MAYER, '</li>';
echo '<li>', City::POPULATION, '</li>';
echo '</ul>';
?>
結果
<ul>
<li>城市</li>
<li>市長</li>
<li>人口</li>
</ul>
class
内的函數 (functions) 可稱爲方法 (methods)class City{
const CITY='城市';
const MAYER='市長';
const GOV='市政府';
const POPULATION='人口';
const LOCATION='位置';
public $name;
public $mayer;
public $population;
public $location;
public function basicInfo(){
echo '<p>城市基本資料</p>';
}
}
->
符號執行物化物件的方法<?php
$tpe=new City;
$tpe->basicInfo();
?>
$this
特殊變數class
内指出物化的物件本身class City{
const CITY='城市';
const MAYER='市長';
const GOV='市政府';
const POPULATION='人口';
const LOCATION='位置';
public $name;
public $mayer;
public $population;
public $location;
public function basicInfo(){
echo '<ul>';
echo "<li>$this->name</li>";
echo "<li>$this->mayer</li>";
echo "<li>$this->population</li>";
echo '</ul>';
}
}
self
特殊物件class
内指出 class
物件本身class City{
const CITY='城市';
const MAYER='市長';
const GOV='市政府';
const POPULATION='人口';
const LOCATION='位置';
public $name;
public $mayer;
public $population;
public $location;
public function basicInfo(){
echo '<ul>';
echo '<li>', self::CITY, '</li>';
echo '<li>', self::MAYER, '</li>';
echo '<li>', self::POPULATION, '</li>';
echo '</ul>';
}
}
$this
變數屬性混用class City{
const CITY='城市';
const MAYER='市長';
const GOV='市政府';
const POPULATION='人口';
const LOCATION='位置';
public $name;
public $mayer;
public $population;
public $location;
public function basicInfo(){
echo '<ul>';
echo '<li>', self::CITY, ":$this->name</li>";
echo '<li>', self::MAYER, ":$this->mayer</li>";
echo '<li>', self::POPULATION, ":$this->population</li>";
echo '<li>', self::LOCATION, ":$this->location</li>";
echo '</ul>';
}
}
static
方法或屬性static
methodclass City{
const CITY='城市';
const MAYER='市長';
const GOV='市政府';
const POPULATION='人口';
const LOCATION='位置';
public $name;
public $mayer;
public $population;
public $location;
public function basicInfo(){
echo '<ul>';
echo '<li>', self::CITY, ":$this->name</li>";
echo '<li>', self::MAYER, ":$this->mayer</li>";
echo '<li>', self::POPULATION, ":$this->population</li>";
echo '<li>', self::LOCATION, ":$this->location</li>";
echo '</ul>';
}
public static function getSubject(){
return '城市的基本資料';
}
}
static
方法由 class
物件以 ::
符號執行<?php
echo '<p>',City::getSubject(),'</p>';
?>
更新日期: