摘要:變量的管理用來判斷某個變量是否已經被聲明,返回一個布爾值,如果變量被定義,返回否則返回當變量被定義成也返回。同樣可以檢查某個數組中元素是否被設置。這就保證方法的擴展性。加一個子類繼承父類即可。
1.變量的管理
1.isset用來判斷某個變量是否已經被php聲明,返回一個布爾值,如果變量被定義,返回true 否則返回false 當變量被定義成null也返回false。同樣可以檢查某個數組中元素是否被設置??梢越邮苋我鈹盗繀?isset($val1,$val2 ...) 但是只有全部被設置了才返回true 2.unset 取消定義之前的變量 如果沒有其他變量引用的話會釋放這個變量的內存空間。用inset檢測unset的值返回false 3.empty 檢測一個變量是否被聲明或者是否為false
超全局變量 $_GET:一個包含所有php從客戶瀏覽器收到的get變量 $_POST:一個包含所有php從客戶瀏覽器收到的post變量 $_COOKIE:一個包含所有php從客戶瀏覽器收的cookie的數組 $_ENV:一個包含環境變量的數組 $_SERVER:一個存放web環境變量的數組
2.轉義
雙引號變量回解析,單引號不會解析。雙引號里面可以有轉義,單引號不行
3.多態
class Cat { function miau() { print("miau"); } } class Dog { function wuff() { print("wuff"); } } function printResult($obj) { if($obj instanceof Cat) { $obj->miau(); } else if($obj instanceof Dog) { $obj->wuff(); }else { print("error:wrong object"); } } echo printResult(new Dog()); echo "
"; echo printResult(new Cat()); //下面是結果 wuff miau
可以看出本例子不可以擴展,如果再加一個動物則必須改源碼 所以用下面方法替換
建立一個父類,建立cry方法。再分別建立兩個子類cat dog類并且也建立cry方法(對父類方法重寫),再用一個實例函數判斷對象,分流。這就保證方法的擴展性。加一個子類繼承父類即可。而不必改源碼
//定義一個父類 class Father { function cry($arg) { print($arg); } } class Cat extends Father{ function cry() { print("Cat"); } } class Dog extends Father{ function cry() { print("Dog"); } } function printResult($obj) { if($obj instanceof Cat) { $obj->cry(); } else if($obj instanceof Dog) { $obj->cry(); }else { print("error:wrong object"); } } echo printResult(new Dog()); echo "
"; echo printResult(new Cat());
4.父類,子類中的parent:: self::
self:: 調用當前類的方法,屬性 parent::調用父類的方法和屬性 //父類 class Father { const name = "father"; public function __construct() { print(self::name); } } //子類 class child extends Father { const name = "child"; public function __construct() { parent::__construct(); echo "
"; print(self::name); } } $child = new child();
5.instanceof 操作符 判斷類的邏輯二元運算符
class Father { public $name = __CLASS__; } class Child extends Father { public $name = __CLASS__; } class test { public $name = __CLASS__; } function judge($obj) { if(!($obj instanceof Father)) { print($obj->name); print(" is a father"); } } judge(new Child()); judge(new test());
6.toString方法(里面是return的值)
class Person { private $name; function __construct($name) { $this->name = $name ; } function __toString() { return $this->name;//一定要return值 調用類的時候后返回 } } $obj = new Person("mmy family"); print($obj);
7.try catch exception 必須繼承exception 類
class NullHandleException extends Exception { function __construct($message) { parent::__construct($message); } } function printObj($obj) { if($obj == null) { throw new NullHandleException("print Object received null object"); } print($obj."
"); } class MyName { private $name; function __construct($name) { $this->name = $name; } function __toString() { return $this->name; } } try { printObj(new MyName("boss")); printObj(NULL); printObj(new MyName("jone")); } catch(NullHandleException $e) { print $e->getMessage()."
"; print "in file " . $e->getFile()."
"; print "on line " . $e->getLine(); } //結果是 boss print Object received null object in file /mnt/hgfs/www/test/class.php on line 269
8.__autoload 自動載入
MyClass.php class MyClass { function hello() { print "hello my friend "; } } general.inc function __autoload($class_name) { // echo$_SERVER["DOCUMENT_ROOT"]."/classes/".$class_name.".php"; require_once($_SERVER["DOCUMENT_ROOT"]."/classes/".$class_name.".php"); } main.php require_once("general.inc"); $class = new MyClass(); echo "hello";exit; $class->hello(); //__autoload 主動調用class自動加載(載入)
**
給程序員一個鼓勵唄!**
微信
支付寶
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/23158.html
摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數式編程語言,它的代碼運行在之上。它通過編輯類工具,帶來了先進的編輯體驗,增強了語言服務。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經到來了,總結過去的 2017,相信小伙們一定有很多收獲...
摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數式編程語言,它的代碼運行在之上。它通過編輯類工具,帶來了先進的編輯體驗,增強了語言服務。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經到來了,總結過去的 2017,相信小伙們一定有很多收獲...
摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數式編程語言,它的代碼運行在之上。它通過編輯類工具,帶來了先進的編輯體驗,增強了語言服務。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經到來了,總結過去的 2017,相信小伙們一定有很多收獲...
摘要:第一階段基礎階段基礎程序員重點把搞熟練核心是安裝配置基本操作目標能夠完成基本的系統安裝,簡單配置維護能夠做基本的簡單系統的開發能夠在中型系統中支持某個功能模塊的開發。本項不做重點學習,除非對前端有興趣。 第一階段:基礎階段(基礎PHP程序員) 重點:把LNMP搞熟練(核心是安裝配置基本操作) 目標:能夠完成基本的LNMP系統安裝,簡單配置維護;能夠做基本的簡單系統的PHP開發;能夠在P...
摘要:具有構造函數的類會在每次創建新對象時先調用此方法,所以非常適合在使用對象之前做一些初始化工作。類的定義以關鍵字開始,類的命名通常以每個單詞第一個字母大寫定義屬性構造函數,在對象被實例化的時候自動調用是里面的偽變量,表示對象自身。 public 公有的:本類,子類,外部對象都可以調用 protected 受保護的:本類 子類,可以執行,外部對象不可以調用 private 私有的:只能...
閱讀 797·2023-04-25 22:57
閱讀 3051·2021-11-23 10:03
閱讀 613·2021-11-22 15:24
閱讀 3156·2021-11-02 14:47
閱讀 2901·2021-09-10 11:23
閱讀 3115·2021-09-06 15:00
閱讀 3936·2019-08-30 15:56
閱讀 3322·2019-08-30 15:52