1、函數
php內置函數可以直接使用,如果沒有安裝php擴展即可
自定義函數
//函數function 函數名 function dump($var = null){ //支出默認參數值 echo ‘<pre/>’; var_dump($var); }2、類(class)和對象( new Obj)
<?php //定義一個人的類,現在還不是對象 class Person { //私有屬性private $eye = '大眼睛'; private $mouth = '小嘴巴'; private $leg = '大長腿'; //構造方法 new 對象的時候自定調用 public function __construct() { echo __CLASS__; } public function run() { echo $this->leg; } //學習 會用到 腿(走路)、眼睛(看書)、嘴(念書) public function study() { echo $this->leg, $this->eye, $this->mouth; } } //使用類 new以後就變成了對象 $person = new Person(); //輸出 Person $person -> run(); //輸出 大長腿 $person -> study(); //輸出 大長腿 大眼睛 小嘴唇3、類的封裝(public, protected, private)和繼承(extends)
//類的繼承 class A { public function help() { echo __METHOD__; } //聲明一個吃的方法 私有的 private function eat() { echo __METHOD__; } } //子類可以繼承父類所有的公共方法和屬性、受保護的方法和屬性,私有方法除外 //如果想使用,重寫即可 class B extends A { public function doSomething() { $this -> help(); //繼承了父類的方法 前提是聲明為public echo '<hr/>'; $this -> eat(); //因為吃是私有的,子類不能使用, 這裡在子類中寫了一個eat方法. } //子類的吃 public function eat() { echo __METHOD__; } } $b = new B; $b->doSomething();//輸出結果A::help
B::eat4、類的靜態方法和靜態屬性
<?php //定義一個Url 相關的類 class Url { public static function createUrl($arr = []) { echo __METHOD__; } public static function redirect($url = '') { echo __METHOD__; } public static function getCurrentUrl() { echo __METHOD__; } } //把方法聲明成靜態方法,不需要每次都實例化(new)對象,操作方便,節省內存,效率更高 echo Url::createUrl($var=''); echo Url::redirect($url=''); echo Url::getCurrentUrl();5、類的靜態屬性
<?php //定義一個Url 相關的類 class Url { //聲明為類常量 const URL = 'http://www.baidu.com'; //從5.3以後可以直接在類外部使用 const //聲明為靜態變量 public static $var = 'it is very good'; public static function createUrl($arr = []) { echo self::URL; echo '<br/>'; echo self::$var; echo '<br/>'; echo __METHOD__; } public static function redirect($url = '') { echo __METHOD__; } public static function getCurrentUrl() { echo __METHOD__; } } //把方法聲明成靜態方法,不需要每次都實例化(new)對象,操作方便,節省內存,效率更高 echo Url::createUrl($var='');