ClassClass 基本用法classclass 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>';
?>更新日期: