亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Home php教程 php手冊 [Essence Series] PHP Essence

[Essence Series] PHP Essence

Oct 08, 2016 pm 04:04 PM

Contents that need to be memorized and mastered about PHP organization

<span style="color: #008000;">1. /*</span><span style="color: #008000;"> 語言結(jié)構(gòu) </span><span style="color: #008000;">*/ -------------------------------------------------------------------------------- 1. /* 語言結(jié)構(gòu) */?<br></span>
  eval(): <strong>eval</strong>() 函數(shù)把字符串按照?<strong>PHP</strong>?代碼來計算,該字符串必須是合法的?<strong>PHP</strong>?代碼,且必須以分號結(jié)尾(詳見 http://www.w3school.com.cn/php/func_misc_eval.asp)<br><br>
2. /* 大小寫問題 */ ------------------------------------------------------------------------------- 2. /* 大小寫問題 */
- 類名、方法名、屬性名、函數(shù)名:不區(qū)分大小寫
- 變量名、常量名、元素下標:區(qū)分大小寫<br><br>
3./* 變量函數(shù) */ ---------------------------------------------------------------------------------- 3./* 變量函數(shù) */
get_defined_vars    //返回由所有已定義變量所組成的數(shù)組(包括環(huán)境變量、服務器變量和用戶定義的變量)<br><br>
4./* 常量相關(guān)函數(shù) */ ------------------------------------------------------------------------------- 4./* 常量相關(guān)函數(shù) */
defined
get_defined_constants<br><br>
5./* 字符串的使用 */ ------------------------------------------------------------------------------- 5./* 字符串的使用 */
可將字符串當作一個字符的集合來使用,可獨立訪問每個字符。僅適用于單字節(jié)字符(字母、數(shù)字、半角標點符號),像中文等不可用
$str = "abcd";
echo $str[3];   // d
echo $str{0};   // a<br><br>
6./* 【函數(shù)】 */ ---------------------------------------------------------------------------------- 6./* 【函數(shù)】 */
1) 函數(shù)的聲明是在編譯時,故先定義再調(diào)用,定義與調(diào)用無先后關(guān)系!
2) 文件只是代碼的載體,程序均在內(nèi)存中執(zhí)行!
3) 如果函數(shù)的定義在需要載入的文件內(nèi),則需要先載入該文件,否則調(diào)用出錯!
4) 函數(shù)的定義可以出現(xiàn)在其他的代碼段中,此時函數(shù)不會在編譯階段被執(zhí)行
    只有被執(zhí)行到時才會被定義!只有獨立定義時才會被編譯在內(nèi)存中!
    如果出現(xiàn)在其他函數(shù)體內(nèi),也需要外層函數(shù)被調(diào)用時才被定義并生效!
5) 函數(shù)名不區(qū)分大小寫
6) 不允許重名,包括系統(tǒng)函數(shù)
7) 【可變函數(shù)】
    函數(shù)名可以用其他變量代替
    $func_name = "sayHello";
    $func_name();       //此時調(diào)用sayHello()函數(shù)
    注意:只有在調(diào)用時才能使用變量,定義時不允許!
8) 變量可作為函數(shù)名調(diào)用函數(shù),數(shù)組元素值也可以!
9) 形式參數(shù)parameter,實際參數(shù)argument
    可以對參數(shù)傳遞 null,表示該形參不想傳遞值
    形參與實參之間既可值傳遞,也可引用傳遞。
    引用傳遞參數(shù),應該在定義函數(shù)時就在形式參數(shù)前加上 & 符號,而此時調(diào)用函數(shù)實參必須為變量
    如何選擇使用哪種傳遞方式?
        a. 是否需要保證原始數(shù)據(jù)的完整性
        b. 是否需要增加效率
        c. 對大數(shù)據(jù)引用傳遞可節(jié)省內(nèi)存
10) 參數(shù)默認值
        a. 函數(shù)的參數(shù)默認值必須是已經(jīng)確定的值,不能是變量!
            只要在調(diào)用之前定義該常量,則可以使用常量作為參數(shù)默認值
        b. 函數(shù)默認值可以有多個,建議將有默認值的參數(shù)放在參數(shù)列表的最后面
           這樣可以在調(diào)用函數(shù)時,不賦予后面有默認值的參數(shù)值,否則會出錯
        c. 默認參數(shù)可以是非標量類型,比如數(shù)組、null
        d. 任何默認參數(shù)必須放在任何非默認參數(shù)的右側(cè)
11) 參數(shù)數(shù)量
    a. 形參數(shù)量多于實參數(shù)量
        報告警告級別錯誤,并以NULL代替
    b. 實參多于形參
        不報告錯誤,依次為形參賦值
    c. 不確定參數(shù)數(shù)量
        1) 一個形參都不定義,永遠都是實參多于形參
        2) 【可變數(shù)量參數(shù)】
            func_get_args() 獲取當前函數(shù)被調(diào)用時所有實參的值,返回一個所有實參值組成的數(shù)組
            func_get_arg()  獲取某個實參的值,通過索引值標識,e.g: func_get_arg(0)
            func_num_args() 獲取所有實參的數(shù)量
12)【return】返回值
    a. 函數(shù)只有一個返回值,可以通過返回一個數(shù)組來得到類似的結(jié)果,但可以有多條return語句
    b. return語句會立即中止函數(shù)的運行,并將控制權(quán)交回調(diào)用該函數(shù)的代碼行
    c. 可以返回包括數(shù)組和對象的任意類型
    d. 函數(shù)的返回也分值傳遞和引用傳遞(返回的是一個變量才可)
        1) 默認是值傳遞方式
        2) 引用傳遞方式:
            - 定義函數(shù)時,函數(shù)名前加上& 表示該函數(shù)可以返回引用
            - 調(diào)用函數(shù)時,函數(shù)名前加上& 表示取得函數(shù)返回的引用
                此時,函數(shù)外修改返回值,會修改函數(shù)內(nèi)的該返回變量的值
            - 如果函數(shù)需返回引用,則需要返回一個變量才可以
            - 從函數(shù)返回一個引用,必須在函數(shù)聲明和指派返回值給一個變量時都使用引用操作符&
                function &returns_reference(){return $someref;}
                $newref =& returns_reference();
        3) 返回引用的作用<br><br><br><br><br>
7. /* 【數(shù)據(jù)庫操作】 */ --------------------------------------------------------------------------- 7. /* 【數(shù)據(jù)庫操作】 */
#連接認證
mysql_connect        連接并認證數(shù)據(jù)庫
#發(fā)送SQL語句,接收執(zhí)行結(jié)果
mysql_query            發(fā)送SQL語句
        僅對select, show, explain, describe語句執(zhí)行成功返回一個資源標識符,其他語句成功返回true。執(zhí)行失敗均返回false。
#處理結(jié)果
mysql_fetch_assoc    從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組
        每次只取回一條,類似each
    結(jié)果集中記錄指針
mysql_fetch_row        從結(jié)果集中取得一行作為枚舉數(shù)組
mysql_fetch_array    從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,或數(shù)字數(shù)組,或二者兼有
    array mysql_fetch_array ( resource $result [, int $ result_type  ] )
    可選參數(shù)result_type可選值為:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH(默認)
mysql_free_result    釋放結(jié)果內(nèi)存
#關(guān)閉鏈接
mysql_close            關(guān)閉連接<br><br><br><br><br>8. /* 自動加載對象*/ ------------------------------------------------------------------------------ 8. /* 自動加載對象*/
- 在試圖使用尚未被定義的類時自動調(diào)用 __autoload 函數(shù)
- 自動加載使用到的類名文件(根據(jù)類名找相應名稱的文件,故需類名與類文件名一致)
- 每個需要加載類的文件都需要存在__autoload函數(shù)
- 將__autoload函數(shù)寫入單獨的文件,每個需要用到類的文件再require該函數(shù)文件
- __autoload 參數(shù)是類名
function __autoload($class_name) {
    require_once $_SERVER["DOCUMENT_ROOT"] . "/class/$class_name.php";
}
    // $_SERVER["DOCUMENT_ROOT"] 當前運行腳本所在的文檔根目錄
- 可以通過類名,來推導出類所在的文件名!
- 如果一個項目存在多個自動加載函數(shù)時,定義一個可以完成加載的普通函數(shù),并在函數(shù)之前使用spl_autoload_register注冊該函數(shù)。
# spl_autoload_register
- 注冊__autoload()函數(shù)
bool spl_autoload_register ([ callback $autoload_function ] )
- 可以注冊多個自動加載函數(shù),先注冊的先執(zhí)行
- 一旦注冊自動加載函數(shù),__autoload就失效。
- 注冊函數(shù)時,參數(shù)為函數(shù)名(注意加引號);注冊方法時,參數(shù)為數(shù)組
# 注冊類或?qū)ο蟮姆椒樽詣蛹虞d方法時,參數(shù)需為數(shù)組:
spl_autoload_register(array(__CLASS__, '__autoload'));
__CLASS__表示當前類名,若是對象可用$this,詳細見手冊<br><br><br><br>9. /*魔術(shù)方法*/ ----------------------------------------------------------------------------------- 9. /*魔術(shù)方法*/
__construct        構(gòu)造方法
__destruct        析構(gòu)方法
__clone            克隆對象
__sleep            序列化對象
__wakeup        反序列化對象
__autoload        自動加載,使用類但未找到時

__toString        對象被當作字符串使用時
__invoke        當嘗試以調(diào)用函數(shù)的方式調(diào)用一個對象時<br><br>
10. /*重載 overload*/ --------------------------------------------------------------------------- 10. /*重載 overload*/
指動態(tài)地"創(chuàng)建"類屬性和方法
用戶可以自由的為對象添加額外的屬性,該特性就是重載。
所有的重載方法都必須被聲明為public。
當調(diào)用當前環(huán)境下未定義或不可見的類屬性或方法時,重載方法會被調(diào)用。
重載相關(guān)魔術(shù)方法的參數(shù)都不能通過引用傳遞。
# 屬性重載
- 處理不可訪問的屬性
屬性重載只能在對象中進行。
# 屬性重載對于靜態(tài)屬性無效
在靜態(tài)方法中,這些魔術(shù)方法將不會被調(diào)用。所以這些方法都不能被聲明為static。
__set        在給不可訪問的屬性賦值時
    public void __set(string $name, mixed $value)
    作用:批量管理私有屬性,間接保護對象結(jié)構(gòu)
__get        讀取不可訪問的屬性的值時
    public mixed __get(string $name)
__isset        當對不可訪問的屬性調(diào)用isset()或empty()時
    public bool __isset(string $name)
__unset        當對不可訪問的屬性調(diào)用unset()時
    public void __unset(string $name)
# 方法重載
- 處理不可訪問的方法
__call            當調(diào)用一個不可訪問的非靜態(tài)方法(如未定義,或者不可見)時自動被調(diào)用
        public mixed __call(string $name, array $arguments)
__callStatic    當在調(diào)用一個不可訪問的靜態(tài)方法(如未定義,或者不可見)時自動被調(diào)用
        public static mixed __callStatic(string $name, array $arguments)
# $name參數(shù)是要調(diào)用的方法名稱。$arguments參數(shù)是一個數(shù)組,包含著要傳遞給方法的參數(shù)。<br><br><br>
11./* 【類與對象相關(guān)函數(shù)】 */ --------------------------------------------------------------------11./* 【類與對象相關(guān)函數(shù)】 */
class_alias([$original [,$alias]])  給類取別名
class_exists($class [,$autoload])   檢查類是否已定義
interface_exists($interface [,$autoload])   檢查接口是否已被定義
method_exists($obj, $method)檢查類的方法是否存在
property_exists($class, $property)  檢查對象或類是否具有該屬性
get_declared_classes(void)  返回由已定義類的名字所組成的數(shù)組
get_declared_interfaces(void)   返回一個數(shù)組包含所有已聲明的接口
get_class([$obj])       返回對象的類名
get_parent_class([$obj])    返回對象或類的父類名
get_class_methods($class)   返回由類的方法名組成的數(shù)組
get_object_vars($obj)   返回由對象屬性組成的關(guān)聯(lián)數(shù)組
get_class_vars($class)  返回由類的默認屬性組成的數(shù)組
is_a($obj, $class) 如果對象屬于該類或該類是此對象的父類則返回TRUE
is_subclass_of($obj, $class)    如果此對象是該類的子類,則返回TRUE
get_object_vars($obj)   返回由對象屬性組成的關(guān)聯(lián)數(shù)組

<span style="color: #008000;">?</span>

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1488
72