日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

php基礎(chǔ)

 井梅 2018-09-25

一、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)識字符串

d)         $_SERVER['SERVER_PROTOCOL']:請求頁面時通信協(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:前一個錯誤信息

三、常量:

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)前行號

2)         __FILE__:文件完整路徑和文件名

3)         __DIR__:文件所在的目錄

4)         __FUNCTION__:函數(shù)名稱

5)         __CLASS__:類的名稱

6)         __TRAIT__Trait 的名字

7)         __METHOD__:類的方法名

8)         __NAMESPACE__:當(dāng)前命名空間的名稱

四、類與對象

1.         屬性

2.         類常量 const NAME='apple';

3.         類自動加載

1)         spl_autoload_register()  注冊任意數(shù)量的自動加載器

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.         對象繼承:extends

7.         范圍解析符: ::用于訪問靜態(tài)成員、類常量、覆蓋類中的屬性和方法

8.         static:靜態(tài)關(guān)鍵字 不可用->操作符訪問 必需用::訪問

9.         抽象類:abstract

1)         抽象類不能被實(shí)例化

2)         類中有一個方法被聲明為抽象的就必須聲明為抽象類

3)         繼承一個抽象類的時候,子類必須定義父類中的所有抽象方法

4)         方法的訪問控制必須和父類中一樣(或者更為寬松)

5)         方法的調(diào)用方式必須匹配,即類型和所需參數(shù)數(shù)量必須一致

6)         強(qiáng)制子類定義父類中的抽象方法

7)         抽象方法僅需要定義需要的參數(shù)

10.     對象接口:interface(聲明接口) 聲明的時候接口中的方法可定義方法名和參數(shù),函數(shù)體都為空

1)         實(shí)現(xiàn):implements 實(shí)現(xiàn)的時候,用類的方法實(shí)現(xiàn)相應(yīng)接口方法中的方法

// 聲明一個'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方法的話是不對的,實(shí)現(xiàn)接口的類必須包含所有接口中的方法

public function getHtml($template)

{

foreach($this->vars as $name => $value) {

$template = str_replace('{' . $name . '}', $value, $template);

}

 

return $template;

}

}

2)         繼承:extends 可繼承多個接口

//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()       在對象中調(diào)用一個不可訪問方法時,__call() 會被調(diào)用。

4)         __callStatic() 在靜態(tài)上下文中調(diào)用一個不可訪問方法時,__callStatic() 會被調(diào)用

5)         __get()        讀取不可訪問屬性的值時,__get() 會被調(diào)用

6)         __set()        在給不可訪問屬性賦值時,__set() 會被調(diào)用。

7)         __isset()      當(dāng)對不可訪問屬性調(diào)用 isset() empty() 時,__isset() 會被調(diào)用。

8)         __unset()      當(dāng)對不可訪問屬性調(diào)用 unset() 時,__unset() 會被調(diào)用。

9)         __sleep()

a)         serialize() 函數(shù)會檢查類中是否存在一個魔術(shù)方法 __sleep()。

b)         如果存在,該方法會先被調(diào)用,然后才執(zhí)行序列化操作。

c)         此功能可以用于清理對象,并返回一個包含對象中所有應(yīng)被序列化的變量名稱的數(shù)組。

d)         如果該方法未返回任何內(nèi)容,則 NULL 被序列化,并產(chǎn)生一個 E_NOTICE 級別的錯誤。

10)     __wakeup()

a)         unserialize() 會檢查是否存在一個 __wakeup() 方法。

b)         如果存在,則會先調(diào)用 __wakeup 方法,預(yù)先準(zhǔn)備對象需要的資源。

11)     __toString()   用于一個類被當(dāng)成字符串時應(yīng)怎樣回應(yīng)

12)     __invoke()     當(dāng)嘗試以調(diào)用函數(shù)的方式調(diào)用一個對象時,__invoke() 方法會被自動調(diào)用

13)     __set_state()  當(dāng)調(diào)用 var_export() 導(dǎo)出類時,此靜態(tài) 方法會被調(diào)用

14)     __clone()

a)         當(dāng)復(fù)制完成時,如果定義了 __clone() 方法,

b)         則新創(chuàng)建的對象(復(fù)制生成的對象)中的 __clone() 方法會被調(diào)用,

c)         可用于修改屬性的值(如果有必要的話)

15)     __debugInfo()

12.     final關(guān)鍵字:如果父類中的方法被聲明為 final,則子類無法覆蓋該方法。如果一個類被聲明為 final,則不能被繼承。

13.     對象比較:=====

14.     對象復(fù)制:__clone

15.     類型約束:函數(shù)的參數(shù)可以指定必須為對象(在函數(shù)原型里面指定類的名字),接口,NULL,數(shù)組或者callable

16.     后期靜態(tài)綁定:static::who()

1)         static:: 不再被解析為定義當(dāng)前方法所在的類,而是在實(shí)際運(yùn)行時計算的

17.     對象序列化:

1)         serialize()

2)         unserialize()

18.     命名空間:

1)         namespace關(guān)鍵字  顯式訪問當(dāng)前命名空間或子命名空間中的元素 等價于類中的 self 操作符

2)         __NAMESPACE__    包含當(dāng)前命名空間名稱的字符串

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多