Home\Common\Map.class.php檔案
namespace Home\Common;
class Map {
static function getName() {
$map = array(
'0' => '張三',
'1' => '李四',
'2' => '王五',
'3' => '趙六'
);
return $map;
}
}
Home\Controller\IndexController.class.php檔案
namespace Home\Controller;
use Think\Controller;
use Home\Common\Map as map;
class IndexController extends Controller {
private $sex = array(0,1);
private $name = map::getName(); // 寫法1
// 測試 靜态函數 類私有變量指派
public function getName() {
$name = map::getName(); // 寫法2
var_dump($name);
}
}
其中,寫法1出錯,顯示:
寫法2顯示:
如果想私有變量指派,可以構造函數指派,即在__construct()裡指派:
$this->name = map::getName(); // 注意千萬别寫成$this->$name
類的變量成員叫做“屬性”,或者叫“字段”、“特征”。屬性聲明是由關鍵字 public,protected 或者 private 開頭,然後跟一個普通的變量聲明來組成。屬性中的變量可以初始化,但是初始化的值必須是常數,這裡的常數是指 PHP 腳本在編譯階段時就可以得到其值,而不依賴于運作時的資訊才能求值。
在類的成員方法裡面,可以用 ->(對象運算符):$this->property(其中 property 是該屬性名)這種方式來通路非靜态屬性。靜态屬性則是用::(雙冒号):self::$property 來通路。
當一個方法在類定義内部被調用時,有一個可用的僞變量 $this。$this 是一個到主叫對象的引用(通常是該方法所從屬的對象,但如果是從第二個對象靜态調用時也可能是另一個對象)。
具體請參考:http://php.net/manual/zh/language.oop5.properties.php