<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [[官方手冊]](http://php.net/manual/zh/index.php) [TOC] ## 簡介 ### PHP特點 PHP:Hypertext Preprocessor,超文本預處理器。 * 是一種腳本語言。由Web服務器中安裝的PHP應用模塊解析。融合了現代編程語言(C,Java和Perl)的一些最佳特性。 * 運行在服務器端。只會在服務器端運行,不會傳到客戶端。PHP根據不同用戶的不同請求,完成在服務器中的業務操作,并將結果返回給用戶。 * 嵌入到HTML中。通過特殊的標識符號嵌入到HTML代碼中。嵌入的這些PHP代碼需要先在服務器中運行完成,若有輸出則將輸出結果字符串嵌入原來的PHP代碼處,再和HTML代碼一起響應給客戶端的瀏覽器進行解析。 **腳本語言**:又稱為動態語言,是使用一種特定的描述性語言、依據一定格式編寫的可執行文件。腳本是一種純文本(如ASCII碼)保存的程序,只在被調用時進行解釋或編譯。腳本在執行時,是由系統的腳本解釋器,將腳本中的文字命令一條一條翻譯成機器可識別的指令,并按腳本中的順序執行。 ### PHP應用 PHP是用來協助Web服務器工作的編程語言,是對Web服務器功能的擴展,外掛在Web服務器上一起工作,需要安裝PHP應用程序服務器對PHP腳本進行解釋執行。 1. 收集表單(Form)數據。$_GET,$_POST。 2. 生成動態網頁。根據用戶在客戶端的不同輸入請求,服務器端的PHP腳本程序可動態輸出內容返回給客戶端,但客戶端無法得知具體的處理過程/代碼。 3. 字符串處理。字符串是PHP的一種基本數據類型。PHP中有豐富的字符串處理函數,還可以使用正則表達式對字符串和文本進行搜索、查找、匹配、替換等操作。 4. 動態輸出圖像。PHP通過使用GD擴展庫可用于動態輸出圖像(文字按鈕、驗證碼、數據統計圖等),還可編輯圖像(處理縮略圖、為圖片添加水印等)。 5. 處理服務器端文件系統。PHP可利用文件系統函數任意操作服務器中的目錄和文件(打開、編輯、復制、創建、刪除,文件屬性等)。 6. 編寫數據庫支持的網頁。PHP可以連接所有主流的數據庫,MySQL、Oracle、SQL Server、MangoDB等。 7. 會話跟蹤控制。$_SESSION、$_COOKIE。 8. 處理XML文件。PHP 5基于libxm2標準化所有的XML擴展,并添加了SimpleXML和XMLReader支持。 9. 支持利用大量的網絡協議。LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows 環境)等。PHP已經支持對Java對象的即時連接,并可以將他們自由地用做PHP對象。甚至可以用CORBA擴展庫來訪問遠程對象。 10. 服務器端的其他操作。PHP在電子商務領域,其Cybercash支付、CyberMUT、VeriSign Payflow Pro及MCVE函數對于在線交易程序來說非常有用。還有很多其他的擴展庫:mnoGoSearch搜索引擎函數、IRC網關函數、壓縮工具(gzip、bz2)、日歷轉換、翻譯等等。 11. 應用于所有主流操作系統。Windows、Linux、iOS、RISC OS等。 12. 支持大多數Web服務器。Apache、Nginx、TomCat、IIS、PWS(Personal Web Server)、Netscape等。對于大多數服務器,PHP提供了一個模塊。(Web服務器安裝成功后,可在php腳本中應用“phpinfo()”函數查看PHP模塊的情況) 13. 支持面向過程和面向對象的開發。 ## 0. 命名空間 在全局命名空間中選擇創建的符號名稱時,要考慮到以下指導方針以免未來的 PHP 版本破壞掉用戶使用的符號名稱。 ### 0.1 全局命名空間 以下代碼結構會進入全局命名空間: * functions(函數) * classes(類) * interfaces(接口) * constants(常量,并非類常量) * 在函數/方法之外定義的變量 ### 0.2 規則 以下列表指出了 PHP 工程在選擇新的內部標識符時保留給自己的權利。最終指南是官方的[? 編碼標準:](http://git.php.net/?p=php-src.git;a=blob_plain;f=CODING_STANDARDS;hb=HEAD) * PHP 擁有最頂層命名空間,但是會嘗試找到合體的描述命名以避免任何明顯的沖突。 * 函數名在兩個詞中間使用下劃線,類名則同時使用 camelCase 和 PascalCase 規則。 * PHP 在任何擴展庫的全局符號前附加上擴展庫的名稱(此規則在過去則有無數例外)。例如: - curl_close() - mysql_query() - PREG_SPLIT_DELIM_CAPTURE - new DOMDocument() - new SplFileObject() - Iterators 和 Exceptions 則只是簡單加上 "Iterator" 和 "Exception" 后綴。例如: - ArrayIterator - LogicException - PHP 保留所有以` __ `開頭的符號(雙下劃線)作為魔術符號。建議用戶不要在 PHP 中創建以` __ `打頭的符號,除非是要使用有文檔記載的魔術函數功能。例如: - __get() - __autoload() ### 0.3 提示 要寫出能經受住時間考驗的代碼,建議給任何進入全局命名空間的符號都加上一個不常見的 3-4 字母的前綴(或后綴),中間用下劃線分開。為了避免與其它用戶空間代碼出現命名空間沖突,建議先研究一下其它項目中已有的前綴(或后綴)并適當地公布出來。示例如下: - MyPx_someFunc() - Foo_Date - $asdf_dbh ## 2. 時間戳 ### 2.1 ### 2.2 ## 3. JSON ### 3.1 ### 3.2 ## 4. PDO ### 4.1 ### 4.2 ## 5. 全局變量 ### 5.1 $_SERVER,服務器變量 ### 5.2 $_ENV,環境變量 PHP中的`$_ENV`是一個包含服務器端環境變量的數組。它是PHP中一個超級全局變量,我們可以在PHP 程序的任何地方直接訪問它。 `$_ENV`只是被動的接受服務器端的環境變量并把它們轉換為數組元素,你可以嘗試直接輸出它。 當你想看看一個變量中究竟有什么東西在里面時,可以有三種方式: ~~~php 1、var_dump($_ENV); 2、print_r($_ENV); 3、foreach($_ENV as $key=>$val){echo $key.'--------'.$val.'<br>';} ~~~ 第一種最方便而且輸出的內容格式清晰。 由于`$_ENV`變量是取決于服務器的環境變量的,從不同的服務器上獲取的`$_ENV`變量打印出的結果可能是完全不同的。所以無法像`$_SERVER`那樣列出完整的列表。以下是`$_ENV`數組包含的比較通用的元素: 有時候,`$_ENV`會為空,其原因通常是php的配置文件php.ini的配置項為:`variables_order = "GPCS"`。要想讓`$_ENV`的值不為空,那么variables_order的值應該加上一個大寫字母“E”,即:`variables_order = "EGPCS"`。 上述配置表示了PHP接受的外部變量來源及順序,`EGPCS`是Environment、Get、Post、Cookies、Server的縮寫。如果variables_order 的配置中缺少E ,則PHP 無法接受環境變量,那么`$_ENV` 也就為空了。 由于開啟`$_ENV`,即variables_order = "EGPCS"會導致一些性能損失,按php官方的說法是,在生產環境中,不推薦使用。他們更推薦使用`getenv (string $varname)`函數來獲取Environment中的值,而這點需要在編程時就注意到。如果編程時用了$_ENV而variables_order中又沒有配置為variables_order = "EGPCS",則程序運行時可能會報錯。 ### 5.3 $_GET,URL GET變量 ### 5.4 $_POST,HTTP POST變量 ### 5.5 $_REQUEST,request變量 ### 5.6 $_FILES,HTTP文件上傳變量 ### 5.7 $_COOKIE,HTTP Cookie ### 5.8 $_SESSION,HTTP Sesssion變量 ### 5.9 $GLOBALS,Global變量 ## 6. 類與對象 [參考文檔,http://php.net/manual/zh/oop5.intro.php](http://php.net/manual/zh/oop5.intro.php) PHP 5 具有完整的對象模型。 PHP 5 中的新特性包括訪問控制,抽象類和 final 類與方法,附加的魔術方法,接口,對象復制和類型約束。 PHP 對待對象的方式與引用和句柄相同,即每個變量都持有對象的引用,而不是整個對象的拷貝。 ### 6.1 類的定義(class) 每個類的定義都以關鍵字 `class` 開頭,后面跟著類名,后面跟著一對花括號,里面包含有類的屬性與方法的定義。 Example #1 簡單的類定義 ~~~php <?php class SimpleClass { // property declaration public $var = 'a default value'; // method declaration public function displayVar() { echo $this->var; } } ?> ~~~ 一個類可以包含有屬于自己的常量,變量(稱為“屬性”)以及函數(稱為“方法”)。 當一個方法在類定義內部被調用時,有一個可用的偽變量` $this`。`$this` 是一個到主叫對象的引用(通常是該方法所從屬的對象,但如果是從第二個對象靜態調用時也可能是另一個對象)。 ### 6.2 類的實例化(new) 要創建一個類的實例,必須使用 `new `關鍵字。當創建新對象時該對象總是被賦值,除非該對象定義了構造函數并且在出錯時拋出了一個異常。類應在被實例化之前定義(某些情況下則必須這樣)。 在類定義內部,可以使用 `new self` 和 `new parent` 創建新對象。 PHP 5.3.0 引進了兩個新方法來創建一個對象的實例: code: ~~~php <?php class Test { static public function getNew() { return new static; } } class Child extends Test {} $obj1 = new Test(); $obj2 = new $obj1; var_dump($obj1 !== $obj2); $obj3 = Test::getNew(); var_dump($obj3 instanceof Test); $obj4 = Child::getNew(); var_dump($obj4 instanceof Child); ?> ~~~ 以上例程會輸出: ~~~php bool(true) bool(true) bool(true) ~~~ ### 6.3 類的繼承(extends) 一個類可以在聲明中用 `extends` 關鍵字繼承另一個類的方法和屬性。PHP不支持多重繼承,一個類只能繼承一個基類。 被繼承的方法和屬性可以通過用同樣的名字重新聲明被覆蓋。但是如果父類定義方法時使用了 final,則該方法不可被覆蓋。可以通過 parent:: 來訪問被覆蓋的方法或屬性。 當覆蓋方法時,參數必須保持一致否則 PHP 將發出 E_STRICT 級別的錯誤信息。但構造函數例外,構造函數可在被覆蓋時使用不同的參數。 code簡單的類繼承 ~~~php <?php class ExtendClass extends SimpleClass { // Redefine the parent method function displayVar() { echo "Extending class\n"; parent::displayVar(); } } $extended = new ExtendClass(); $extended->displayVar(); ?> ~~~ 以上例程會輸出: ~~~php Extending class a default value ~~~ ## x. 異步通信庫(Swoole) ### x.1 異步IO ### x.2 webSocket ## [參考資源] ### 官方 #### [函數參考](http://php.net/manual/zh/funcref.php) #### [字符串 函數](http://php.net/manual/zh/ref.strings.php) #### [日期與時間相關擴展](http://php.net/manual/zh/refs.calendar.php) #### [數組](http://php.net/manual/zh/book.array.php) #### [類與對象](http://php.net/manual/zh/language.oop5.php)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看