一、PHP類型: 1.
標(biāo)量:boolean integer float string 2.
復(fù)合:array object callable 3.
特殊:resource null 二、預(yù)定義變量: 1.
超全局變量: 1)
$GLOBALS:引用全局作用域中可用的全部變量 2)
$_SERVER:服務(wù)器和執(zhí)行環(huán)境信息 a)
$_SERVER['SERVER_ADDR']:服務(wù)器ip地址 b)
$_SERVER['SERVER_NAME']:服務(wù)器主機(jī)名 c)
$_SERVER['SERVER_SOFTWARE']:服務(wù)器標(biāo)識(shí)字符串 d)
$_SERVER['SERVER_PROTOCOL']:請(qǐng)求頁面時(shí)通信協(xié)議的名稱及版本 e)
$_SERVER['REMOTE_ADDR']:瀏覽當(dāng)前頁面用戶ip地址 f)
$_SERVER['REMOTE_HOST']:瀏覽當(dāng)前頁面用戶主機(jī)名 3)
$_GET 4)
$_POST 5)
$_FILE 6)
$_COOKIE 7)
$_SESSION 8)
$_REQUEST:$_GET、$_POST、$_COOKIE 9)
$_ENV:環(huán)境變量 10)
$php_errormsg:前一個(gè)錯(cuò)誤信息 三、常量: 1.
常量只包含標(biāo)量數(shù)據(jù) 2.
常量不可取消或重新定義 3.
常量可在任何地方定義和訪問 4.
常量相關(guān)函數(shù): 1)
define()|const:定義常量 2)
constant():獲取常量的值 3)
get_defined_constants():獲取常量列表 4)
defined():判斷是否定義該常量 5.
預(yù)定義常量: 1)
E_ERROR 2)
E_WARNING 3)
.. 4)
TRUE 5)
FALSE 6)
NULL 6.
魔術(shù)常量: 1)
__LINE__:當(dāng)前行號(hào) 2)
__FILE__:文件完整路徑和文件名 3)
__DIR__:文件所在的目錄 4)
__FUNCTION__:函數(shù)名稱 5)
__CLASS__:類的名稱 6)
__TRAIT__:Trait 的名字 7)
__METHOD__:類的方法名 8)
__NAMESPACE__:當(dāng)前命名空間的名稱 四、類與對(duì)象 1.
屬性 2.
類常量 const NAME='apple'; 3.
類自動(dòng)加載 1)
spl_autoload_register() 注冊(cè)任意數(shù)量的自動(dòng)加載器 spl_autoload_register(function ($class_name) { require_once $class_name . '.php'; }); 4.
構(gòu)造函數(shù)和析構(gòu)函數(shù) 1)
__construct():構(gòu)造函數(shù) 2)
__destruct():析構(gòu)函數(shù) 5.
訪問控制:public private protected 6.
對(duì)象繼承:extends 7.
范圍解析符: ::用于訪問靜態(tài)成員、類常量、覆蓋類中的屬性和方法 8.
static:靜態(tài)關(guān)鍵字 不可用->操作符訪問 必需用::訪問 9.
抽象類:abstract 1)
抽象類不能被實(shí)例化 2)
類中有一個(gè)方法被聲明為抽象的就必須聲明為抽象類 3)
繼承一個(gè)抽象類的時(shí)候,子類必須定義父類中的所有抽象方法 4)
方法的訪問控制必須和父類中一樣(或者更為寬松) 5)
方法的調(diào)用方式必須匹配,即類型和所需參數(shù)數(shù)量必須一致 6)
強(qiáng)制子類定義父類中的抽象方法 7)
抽象方法僅需要定義需要的參數(shù) 10.
對(duì)象接口:interface(聲明接口) 聲明的時(shí)候接口中的方法可定義方法名和參數(shù),函數(shù)體都為空 1)
實(shí)現(xiàn):implements 實(shí)現(xiàn)的時(shí)候,用類的方法實(shí)現(xiàn)相應(yīng)接口方法中的方法 // 聲明一個(gè)'iTemplate'接口 interface
iTemplate { public function
setVariable($name, $var); public function
getHtml($template); } // 實(shí)現(xiàn)接口 class Template
implements iTemplate { private $vars =
array(); public function
setVariable($name, $var) { $this->vars[$name]
= $var; } //沒有getHtml方法的話是不對(duì)的,實(shí)現(xiàn)接口的類必須包含所有接口中的方法 public function
getHtml($template) { foreach($this->vars
as $name => $value) { $template =
str_replace('{' . $name . '}', $value, $template); } return $template; } } 2)
繼承:extends 可繼承多個(gè)接口 //trait:代碼復(fù)用 <?php trait
ezcReflectionReturnInfo { function
getReturnType() { /*1*/ } function
getReturnDescription() { /*2*/ } } class
ezcReflectionMethod extends ReflectionMethod { use
ezcReflectionReturnInfo; /* ... */ } class
ezcReflectionFunction extends ReflectionFunction { use
ezcReflectionReturnInfo; /* ... */ } ?> 11.
魔術(shù)方法 1)
__construct() 構(gòu)造 2)
__destruct() 析構(gòu) 3)
__call() 在對(duì)象中調(diào)用一個(gè)不可訪問方法時(shí),__call()
會(huì)被調(diào)用。 4)
__callStatic() 在靜態(tài)上下文中調(diào)用一個(gè)不可訪問方法時(shí),__callStatic() 會(huì)被調(diào)用 5)
__get() 讀取不可訪問屬性的值時(shí),__get() 會(huì)被調(diào)用 6)
__set() 在給不可訪問屬性賦值時(shí),__set() 會(huì)被調(diào)用。 7)
__isset() 當(dāng)對(duì)不可訪問屬性調(diào)用 isset() 或 empty() 時(shí),__isset() 會(huì)被調(diào)用。 8)
__unset() 當(dāng)對(duì)不可訪問屬性調(diào)用 unset() 時(shí),__unset() 會(huì)被調(diào)用。 9)
__sleep() a)
serialize() 函數(shù)會(huì)檢查類中是否存在一個(gè)魔術(shù)方法 __sleep()。 b)
如果存在,該方法會(huì)先被調(diào)用,然后才執(zhí)行序列化操作。 c)
此功能可以用于清理對(duì)象,并返回一個(gè)包含對(duì)象中所有應(yīng)被序列化的變量名稱的數(shù)組。 d)
如果該方法未返回任何內(nèi)容,則 NULL 被序列化,并產(chǎn)生一個(gè) E_NOTICE 級(jí)別的錯(cuò)誤。 10)
__wakeup() a)
unserialize() 會(huì)檢查是否存在一個(gè)
__wakeup() 方法。 b)
如果存在,則會(huì)先調(diào)用 __wakeup 方法,預(yù)先準(zhǔn)備對(duì)象需要的資源。 11)
__toString() 用于一個(gè)類被當(dāng)成字符串時(shí)應(yīng)怎樣回應(yīng) 12)
__invoke() 當(dāng)嘗試以調(diào)用函數(shù)的方式調(diào)用一個(gè)對(duì)象時(shí),__invoke()
方法會(huì)被自動(dòng)調(diào)用 13)
__set_state() 當(dāng)調(diào)用 var_export() 導(dǎo)出類時(shí),此靜態(tài) 方法會(huì)被調(diào)用 14)
__clone() a)
當(dāng)復(fù)制完成時(shí),如果定義了 __clone() 方法, b)
則新創(chuàng)建的對(duì)象(復(fù)制生成的對(duì)象)中的 __clone() 方法會(huì)被調(diào)用, c)
可用于修改屬性的值(如果有必要的話) 15)
__debugInfo() 12.
final關(guān)鍵字:如果父類中的方法被聲明為 final,則子類無法覆蓋該方法。如果一個(gè)類被聲明為 final,則不能被繼承。 13.
對(duì)象比較:==和=== 14.
對(duì)象復(fù)制:__clone 15.
類型約束:函數(shù)的參數(shù)可以指定必須為對(duì)象(在函數(shù)原型里面指定類的名字),接口,NULL,數(shù)組或者callable 16.
后期靜態(tài)綁定:static::who() 1)
static:: 不再被解析為定義當(dāng)前方法所在的類,而是在實(shí)際運(yùn)行時(shí)計(jì)算的 17.
對(duì)象序列化: 1)
serialize() 2)
unserialize() 18.
命名空間: 1)
namespace關(guān)鍵字 顯式訪問當(dāng)前命名空間或子命名空間中的元素 等價(jià)于類中的 self 操作符 2) __NAMESPACE__ 包含當(dāng)前命名空間名稱的字符串 |
|