<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>

                [TOC] # php可以做什么 * php是一種可以在服務器端運行的編程語言,可以運行在Web服務器端。 * php是一門后臺編程語言,是目前比較主流的后臺編程語言。 > 認識一下PHP及其功能。 1. 運行在服務器端:學會了PHP,就可以指揮服務器給你干活,甚至是搞破壞^_^(千萬不能真這么做咯),WEB網站的大部分數據都是存儲在服務器端的,PHP就是用來處理這些存儲在服務器的數據的(功能強大吧)。 2. 跨平臺:服務器可以是多種平臺的服務器,比如Linux、Windows、Unix,你都可以指揮(不用怕只能指揮一種服務器啦吧)。 3. 腳本語言:它是通過編寫腳本,也就是一行行的計算機指令(也可以理解為特定的英文單詞),來指揮服務器來工作的,因此,在編寫PHP的過程其實就是與老外(服務器成老外啦)交流的過程,交流的語言就是PHP。 4. 免費:免費使用(天下還真有免費的午餐)。 ![Paste_Image.png](http://upload-images.jianshu.io/upload_images/4630996-c63e1337eed93f05.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) # 認識PHP代碼標識 想在頁面中編寫PHP?代碼非常容易,如下面代碼: ``` <?php echo "Hello,PHP!"; ?> ``` ![Paste_Image.png](http://upload-images.jianshu.io/upload_images/4630996-7e8800a56d0efd05.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 就像你可以編寫JavaScript腳本語言需要寫在`<script></script>`標簽之間一樣,你可以在頁面中編寫PHP代碼寫在??`<?php ?>`標簽之間,但注意后面的`?>`是可以省略的。 > 文件后綴名為.php結尾,上傳到Web服務器的文檔根目錄下,通過瀏覽器訪問Web服務器管理下的PHP文件,就可以運行PHP文件。 # 使用不同的四對標記 1. 以`<?php`開始和以`?>`結束標記是標準風格,這是PHP推薦使用的標記風格。 2. 以`<script language="php">`開始和`<script>`結束是長風格標記,這種標記最長,總是可用的,但我們并不常用。 3. 以`<?`開始和以`?>`結束標記是簡短風格的標記,是最簡單的,但是系統管理員偶爾會禁用掉它,因為它會干擾XML文檔的聲明。只用通過php.ini配置文件中的指令short_open_tag打開后就可以使用。 4. 以`<%`開始和以`%>`結束標記是ASP風格的標記,可以在php.ini配置文件設定中啟用了asp_tags選項就可以使用它(默認是禁用的),習慣了ASP風格的可以使用它。 # 指令分隔符 PHP同C或Perl以及Java一樣,語句分為兩種: 1. 一種是在程序中使用結構定義語句例如流程控制、函數與類的定義等,是用大括號來標記代碼塊,在大括號后面不要用分號。 2. 另一種是在程序中使用功能執行語句,如變量的聲明、內容的輸出、函數的調用等,是用來在程序中執行某些特定功能的語句,這種語句也可稱為指令,PHP需要在每個指令后用分號`;`結束。 和其他語言不一樣的是,在PHP中右括號`?>`前的分號不是必選的 > 每個語句結束之后忘記加分號可是會報語法錯誤的哦~ # 程序注釋 對于閱讀代碼的人來說,注釋其實就相當于代碼的解釋和說明。注釋可以用來解釋腳本的用途、腳本編寫人、為什么要按如此的方法編寫代碼、上一次修改的時間等等。 PHP支持C、C++和Shell腳本風格的注釋,如下: 1. 單行注釋 // ``` $a = 3 //申明一個變量 這是單行注釋 ``` 2. 多行注釋 (注意:不能嵌套)/**/ ```` /* 多行注釋內容 author:dp createtime:2017-2-7 */ ```` 3. 腳本注釋 # ``` #這是一種腳本注釋方法 ``` >程序員在編程時使用注釋是一種良好的習慣,可以用來寫幫助文檔,有助于調試程序。 >注意: 注釋要寫在代碼的上面或是右邊 # 變量 1. #### 什么是變量 變量是用于存儲值的,我們命令服務器去干活的時候,往往需要產生一些數據,需要臨時性存放起來,方便取用。我們也可以理解為,變量就像一個購物袋,我們可以用來裝蘋果、榴蓮(當然也可以用來裝玫瑰),需要注意的是,一般情況下一個變量只能裝一個(不要太貪心)值,除非是復合變量(后面變量類型時會介紹),當我們放進去一個蘋果后,再放進榴蓮的時候,蘋果就被替換掉,再放入香蕉,那么榴蓮就被替換了。 2. #### 如何定義變量 定義變量就是向服務器的內存申請空間,用來存儲數據。這時候我們就需要用到變量名和變量值. ``` <?php $n = 10; $var_name = '蘋果'; ?> ``` 解釋一下,在`=`左邊的是變量名,右邊的是變量值。完成定義變量后,需要一個`;`告訴服務器這行指令已經結束。其中變量名必須通過`$`符號標識,`=`可不是我們平常所說的等號哦,在PHP中,`=`是**賦值運算符**;在這里,`var_name`是變量名,`蘋果`是變量值,它是一個字符串;`n`是變量名,`10`是變量值,它是一個整型。 3. #### 變量名的命名規則 變量名除了需要`$`進行標識外,還有一些規則需要遵守。變量名的命名規則主要有三條: ①變量名必須以字母或下劃線"-"開頭,數字不能開頭。如"$_name","$name" ,"$name2"等 ②變量名只能由`字母`、`數字`、以及`下劃線`組成,還能包含漢字。如"`$_qq`","`$qq308`" ,"`$my_apple`","比如"`$name我等`",但是"`$name*`"是不對的。 ③變量名不允許包含空格。當變量名由多個單詞組成,建議使用下劃線"-"進分隔比如 `$my_apple`,俗稱下劃線法,或者以大寫字母開頭比如 `$myApple`,俗稱駱駝式命名法(也稱駝峰命名法)。 特別需要注意的是,在PHP中變量名是區分大小寫的,如"`$my_book`"與"`$my_Book`"代表兩個不同的變量。 4. ####變量的數據類型 數據類型: PHP 支持八種原始類型。 ``` ##四種標量類型##: 布爾型(boolean) 整型(integer) 浮點型(float)(浮點數,也作double) 字符串(String) ##兩種復合類型##: 數組(Array) 對象(Object) ##最后是兩種特殊類型##: 資源(Resource) NULL ``` 在變量中,由于變量占用的空間單元不一樣(占的地盤大小不一樣),也分成幾種數據類型。 *我們可以通過使用"`memory_get_usage`"獲取當前PHP消耗的內存。* 可以對比一下內存消耗 ``` <?php echo $m1 = memory_get_usage(); //初始化消耗內存 echo "<br/>"; $var_string = "123"; echo $m2 = memory_get_usage()-$m1; //字符串消耗內存 echo "<br/>";? $n=123; echo $m3 = memory_get_usage()-$m1-$m2; //整型消耗內存 echo "<br/>";? $f=123.00; echo $m4 = memory_get_usage()-$m1-$m2-$m3;//浮點型消耗內存? echo "<br/>";? $var_array = array("123"); echo $m5 = memory_get_usage()-$m1-$m2-$m3-$m4; //數組消耗內存 ?> ``` `gettype()`返回變量的類型,共有8個可能的值**string**、**integer**、**float**、**boolean**、**array**、**object**、**null**、**unknown** `is_type()`查看變量是否屬于某個類型,如果是,返回TRUE,否則,返回FALSE ``` $arr = array(1); echo is_array($arr); $num = 5; echo is_int($num); ``` `is_array` -- 檢測變量是否是數組 `is_bool` --? 檢測變量是否是布爾型 `is_callable` --? 檢測參數是否為合法的可調用結構 `is_double` -- `is_float()` 的別名 `is_float` -- 檢測變量是否是浮點型 `is_int` -- 檢測變量是否是整數 `is_integer` -- `is_int()` 的別名 `is_long` -- `is_int()` 的別名 `is_null` --? 檢測變量是否為 NULL `is_numeric` --? 檢測變量是否為數字或數字字符串 `is_object` -- 檢測變量是否是一個對象 `is_real` -- is_float() 的別名 `is_resource` --? 檢測變量是否為資源類型 `is_scalar` --? 檢測變量是否是一個標量 `is_string` -- 檢測變量是否是字符串 `var_dump()`獲取變量的值和類型的詳細信息 ``` $str = ‘hello’; var_dump($str); $arr = array(‘A’, ‘B’, ‘C’); var_dump($arr); ``` 在php中,支持**8**種原始類型,其中包括**四種標量**類型、**兩種復合**類型和**兩種特殊**類型。php是一門松散類型的語言,不必向php聲明變量的數據類型。php會自動把變量轉換為自動的數據類型。 ``` <?php $string="就是就是"; //定義一個字符串"就是就是" var_dump($string);? echo "<br/>"; $string="9494";//把它變成整型"9494" var_dump($string); //通過"var_dump"函數,輸出數據類型 ?echo "<br/>"; ?> ``` 輸出結果:string(12) "就是就是" ? ? ? ? ? ? ? int(9494) 我們可以發現, 這個變量自動就從原來的字符串轉換成了整型咯。 ##### 4.1 PHP標量類型—整型 整型(integer):類似于常見的整數。它可以用十進制、八進制、十六進制指定。十進制就是日常使用的數字;八進制,數字前必須加上"0"(阿拉伯數字0);十六進制,數字前必須加"0x"(阿拉伯數字0)。如: ``` <?php $data_int = 1234;? // 十進制數 $data_int = -567;? ? // 一個負數 $data_int = 0123;? ? // 八進制數(等于十進制的 83) $data_int = 0x1a;? ? // 十六進制數(等于十進制的 26) ?> ``` ##### 4.2 標量類型—浮點型 浮點型(浮點數、雙精度數或實數),也就是通常說的小數,可以用小數點或者科學計數法表示。科學計數法可以使用小寫的e,也可以使用大寫的E。 ``` <?php echo $num_float1 = 1.234;? ? //小數點,輸出結果1.234 echo $num_float2 = 1.2e3;? ? //科學計數法,小寫e,輸出結果1200 echo $num_float3 = 7.0E-3;? ? //科學計數法,大寫E,輸出結果0.007 ?> ``` ##### 4.3 PHP標量類型—字符串 字符串是由一系列字符組成,在PHP中,字符和字節一樣,也就是說,一共有256種不同字符的可能性。 字符串型可以用三種方法定義:**單引號形式**、**雙引號形式**和**Heredoc結構形式**。 ``` <?php $str_string1='我是字符串1'; $str_string2="我是字符串2"; echo $str_string1; echo "<br/>"; echo $str_string2; ?> ``` > 當你的字符串中包含引號的時候,我們怎么辦? ``` <?php $str_string1 = '甲問:"你在哪里學的PHP?"'; ? ? ? //單引號中嵌入雙引號 $str_string2 = "乙毫不猶豫地回答:'你猜!'"; ? ? ?//雙引號中嵌入單引號 $str_string3 = '甲問:\'能告訴我網址嗎?\'';? ? ? ? ? ? //單引號中嵌入單引號,使用轉義符"\" $str_string4 = "乙答道:\"www.你猜.com\"";? ? ? ? //雙引號中嵌入雙引號,使用轉義符"\" echo $str_string1; echo $str_string2; echo $str_string3; echo $str_string4; ?> ``` > **當引號遇到美元咋辦?**這里的美元可不是真正的美元,而是用美元符號標識的變量。 字符串轉義 \n ? ? ? ?換行 \r ? ? ? ? ?回車 \t ? ? ? ? ?水平制表符,tab鍵 \\ ? ? ? ? ? 反斜杠 \$ ? ? ? ? ?美元符 \" ? ? ? ? ? 雙引號 當雙引號中包含變量時,變量會與雙引號中的內容連接在一起;**雙引號可以解析變量**,如果想明確的指定名字的結束,可以用花括號`{ }`把變量名括起來。`echo "He drank some {$beer}s"`; 當單引號中包含變量時,變量會被當做字符串輸出。 ``` <?php $love = "I love you!";? $string1 = "xxx,$love"; $string2 = 'xxx,$love'; echo $string1; ? ? ? ? ? ? ? ? ? ?//輸出:xxx,I ?love you! echo "<br/>"; echo $string2; ? ? ? ? ? ? ? ? ? ?//輸出:xxx,$love ?> ``` > 當我的字符串很長怎么辦? 我們可以使用**Heredoc結構形式(定界符)**的方法來解決該問題,首先使用定界符表示字符串(`<<<`),接著在"<<<"之后提供一個標識符**`GOD`**,然后是字符串,最后以提供的這個標識符結束字符串。 ``` <?php $string1=<<<GOD 我有一只小毛驢,我從來也不騎。 有一天我心血來潮,騎著去趕集。 我手里拿著小皮鞭,我心里正得意。 不知怎么嘩啦啦啦啦,我摔了一身泥. GOD; echo $string1; ?> ``` > 在賦值符號后,輸入定界符"<<<",接著是標識符,你可以用你的女神作為標識符"GOD",如第2行,也可以使用你喜歡的狗狗,"DOG"作為標識符,但是,結尾處的標識符也必須是一樣的。此外,在結尾的一行,如第7行,一定要另起一行,并且此行除了"GOD",并以";"號結束之外,不能有任何其他字符,前后都不能有,包括空格,否則會出現錯誤的哦。切記切記哦。 定界符也可以解析變量,如果想明確的指定名字的結束,可以用花括號`{ }`把變量名括起來。 ##### 4.4標量類型—布爾類型 布爾類型(boolean):只有兩個值,一個是TRUE,另一個是FALSE,可以理解為是或否。它不區分大小寫。主要用在條件結構中。需要注意的是,當我們用echo指令輸出布爾類型時,如果是true則輸出的是1,false則什么也不輸出。我們可以使用var_dump函數,獲取它真正的數據類型。 > 當其他類型轉換為 boolean類型 時,以下值被認為是FALSE: 布爾值 FALSE 整型值 0(零) 浮點型值 0.0(零) 空白字符串和字符串"0" 沒有成員變量的數組 沒有單元的對象(僅適用于 PHP 4) 特殊類型 NULL(包括尚未設定的變量) 所有其它值都被認為是 TRUE(包括任何資源)。 ##### 4.5第一種特殊類型—資源 資源(resource):資源是由專門的函數來建立和使用的,例如打開文件、數據連接、圖形畫布。我們可以對資源進行操作(創建、使用和釋放)。任何資源,在不需要的時候應該被及時釋放。如果我們忘記了釋放資源,系統自動啟用垃圾回收機制,在頁面執行完畢之后回收資源,以避免內存被消耗殆盡。 ``` <?php $file=fopen("f.txt","r");? //打開文件 $con=mysql_connect("localhost","root","root");? //連接數據庫 $img=imagecreate(100,100);//圖形畫布 ?> ``` ##### 4.6PHP第二種特殊類型—空類型 NULL(NULL):NULL是空類型,對大小寫不敏感,NULL類型只有一個取值,表示一個變量沒有值,當被賦值為NULL,或者尚未被賦值,或者被unset(),這三種情況下變量被認為為NULL。 ``` <?php error_reporting(0); ? ? ? ? ? ? ? ? ? ?//禁止顯示PHP警告提示 $var; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//為變量未賦值 var_dump($var); ? ? ? ? ? ? ? ? ? ? //NULL $var1=null; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//將null賦值給變量$var1 var_dump($var1);? ? ? ? ? ? ? ? ? ? ? //NULL $var2=NULL; ? ? ? ? ? ? ? ? ? ? ? ? ? //將NULL賦值給變量$var2 var_dump( $var2);? ? ? ? ? ? ? ? ? ? //NULL $var3 = "節日快樂!"; unset($var3); ? ? ? ? ? ? ? ? ? ? ? ? ? ? //將變量$var3注銷定義 var_dump($var3);? ? ? ? ? ? ? ? ? ? //NULL ?> ``` ##### 4.7第一種復合類型—數組 PHP 中的數組實際上是一個有序圖。圖是一種把 values 映射到 keys 的類型。此類型在很多方面做了優化,因此可以把它當成真正的數組來使用,或列表(矢量),散列表(是圖的一種實現),字典,集合,棧,隊列以及更多可能性。因為可以用另一個 PHP 數組作為值,也可以很容易地模擬樹。本書將用一章介紹數組的聲明與使用,這里僅作簡要說明。 PHP中可以使用多種方式構建一個數組,在這里我們只用array()語言結構來新建一個array。它接受一定數量用逗號分隔的 key => value 參數對。 ``` 語法結構: array( [key =>] value , ... ) // key 可以是integer或者string類型 // value 可以是任何值 <?php $arr = array( "foo" => "bar", 12 => true); ?> ``` ##### 4.8第二種復合類型—對象 在PHP中,對象和數組一樣都是一種復合數據類型。但對象是一種更高級的數據類型。一個對象類型的變量,是由一組屬性值和一組方法構成,其中屬性表明對象的一種狀態,方法通常用來表明對象的功能。本書將用一章的內容來介紹對象的使用,這里僅作簡要的說明。要初始化一個對象,用 new 語句將對象實例到一個變量中。 ``` <?php class foo{ //類的定義 function do_foo(){ //類中方法的定義 echo "Doing foo."; } } $bar = new foo; //初始化類foo創建一個對象bar $bar->do_foo(); //通過對象bar調用方法do_foo輸出: Doing foo. ?> ``` # 超全局變量 php提供了很多預定義的變量,用于提供大量與環境有關的信息。 1. **$_SERVER** 服務器變量,該全局變量包含著服務器和客戶端配置及當前請求環境的有關信息。 `print_r ?($_SERVER)` `$_SERVER['SERVER_NAME']`:當前運行腳本所在的服務器的主機名 `$_SERVER['REMOTE_ADDR']` :客戶端IP地址 `$_SERVER['REQUEST_URI']`:URL的路徑部分 `$_SERVER['HTTP_USER_AGENT']` :操作系統和瀏覽器的有關信息 2. **$_GET** ?該變量包含使用GET方法傳遞的有關信息 3. **$_POST** 該變量包含使用POST方法傳遞的參數的有關信息。 4. **$_REQUEST** 該變量記錄著通過各種輸入方法傳遞給腳本的變量,如GET、POST,但不要用這個超級全局變量,因為它不安全而且速度比較慢。 5. **$_COOKIE** ? ?cookie變量數組 6. **$_SESSION** ? 會話變量數組 7. **$_FILES** ?與上傳文件有關的變量數組 8. **$_ENV** ? ?環境變量數組 9. **$GLOBALS** ?所有全局變量數組 # empty()函數 `empty()`函數是用來測試變量是否已經配置,**判斷值為否為空**。 > 若變量已存在、非空字符串或者非零,則返回 false 值;反之返回 true值。所以,當字符串的值為0時,也返回true,就是執行empty內部的語句。這就是陷阱。0為空。 如: 假設 `$value = 0`; 則`empty($value)=false` # isset()函數 `isset()`函數 一般用來檢測變量是否設置.若變量不存在則返回 FALSE。 > ****若變量存在且其值為NULL,也返回 FALSE。若變量存在且值不為NULL,則返回 TURE。 簡單來說就是,有值返回true,沒有值返回false,0不是空,0也是表示有值 使用 unset() 釋放變量之后,它將不再是 isset()。 PHP函數isset()只能用于變量,傳遞任何其它參數都將造成解析錯誤。 # 常量 > 什么是常量? 常量可以理解為值不變的量(如圓周率)。或者是常量值被定義后,在腳本的其他任何地方都不可以被改變。php中的常量分為自定義常量和系統常量。 自定義常量是根據我們開發的需要,而定義的常量,它通過使用PHP中的函數`define()`定義。 define()函數的語法格式為: ``` bool define(string $constant_name, mixed $value[, $case_sensitive = true]) ``` 它有3個參數: 第一個參數"constant_name"為必選參數,常量名稱,即標志符,常量的命名規則與變量的一致,但是要注意哦,它可不帶美元符號哦。 第二個參數"value"為必選參數,它是常量的值。 第三個參數"case_sensitive"為可選參數,指定是否大小寫敏感,設定為true表示不敏感,一般不指定第三個參數的情況下,默認第三個參數的值為false。 > (注: string表示參數類型為字符串類型,mixed表示參數類型可以接受為多種不同的類型,case_sensitive = true表示默認為布爾類型TRUE) (通常常量都全用大寫) ``` //舉個栗子,將圓周率定義為常量"PI" <?php $p = "PII"; define("PI",3.14); define($p,3.14); echo PI; ? ? ? ? ? ? ? ? ?//3.14 echo "<br/>"; echo PII; ? ? ? ? ? ? ? ?//3.14 ?> ``` **常量的作用** 常量主要功效是可以避免重復定義,篡改變量值。在我們進行團隊開發時,或者代碼量很大的時候,對于一些第一次定義后不改變的量,如果我們使用變量,在不知情的情況下,使用同一變量名時,變量值就會被替換掉,從而會引發服務器執行錯誤的任務。 此外,使用常量還能提高代碼的可維護性。如果由于某些原因,常量的值需要變更時候,我們只需要修改一個地方。例如在做計算中,起初我們取圓周率為3.14,于是很多計算中我們都使用3.14進行計算,當要求計算精度提高,圓周率需要取3.142的時候,我們不得不修改所有使用3.14的代碼,倘若代碼量比較多時,不僅工作量大,還可能遺漏。 ``` <?php define("PI",3.14); $r=3; echo "面積為:".(PI*$r*$r)."<br/>"; echo "周長為:".(2*PI*$r)."<br/>"; ?> ``` # 系統常量 系統常量是php已經定義好的常量,我們可以直接拿來使用,常見的系統常量有: 1. `` __FILE__`` :php程序文件名。它可以幫助我們獲取當前文件在服務器的物理位置。 2. ``__LINE__ `` :PHP程序文件行數。它可以告訴我們,當前代碼在第幾行。 3. ``PHP_VERSION``:當前解析器的版本號。它可以告訴我們當前PHP解析器的版本號,我們可以提前知道我們的PHP代碼是否可被該PHP解析器解析。 4. ``PHP_OS``:執行當前PHP版本的操作系統名稱。它可以告訴我們服務器所用的操作系統名稱,我們可以根據該操作系統優化我們的代碼。 ``` <?php echo _FILE_; echo _LINE_; echo PHP_VERSION; echo PHP_OS; ?> ``` > 常量如何取值 獲取常量值的有兩種方法取值。第一種是使用常量名直接獲取值;例如計算圓周率的面積,如下("*"是運算符,相當于乘號,后面部分的小節會介紹): ``` <?php define("PI",3.14); $r=1; $area =**PI***$r*$r; ? ? ? ? ? ? ? ? ? ? ?//計算圓的面積 ?> ``` 第二種是使用constant()函數。它和直接使用常量名輸出的效果是一樣的,但函數可以動態的輸出不同的常量,在使用上要靈活、方便,其語法格式如下: ``` mixed constant(string constant_name) ``` 第一個參數constant_name為要獲取常量的名稱,也可為存儲常量名的變量。如果成功則返回常量的值,失敗則提示錯誤信息常量沒有被定義。(注:mixed表示函數返回值類型為多種不同的類型,string表示參數類型為字符串類型) //舉個栗子: ``` <?php $p=""; //定義圓周率的兩種取值 define("PI1",3.14); define("PI2",3.142); //定義值的精度 $height = "中"; //根據精度返回常量名,將常量變成了一個可變的常量 if($height == "中"){ $p = "PI1"; }else if($height == "低"){ $p = "PI2"; } $r=1; $area= constant($p)*$r*$r; echo $area; ?> ``` > 如何判斷常量是否被定義 如果常量被重復定義以后,PHP解析器會發出"`Constant XXX already defined`"的警告,提醒我們該常量已經被定義過。那么,在團隊開發,或代碼量很大的情況下,我們如何去判定一個常量是否被定義呢? `defined()`函數可以幫助我們判斷一個常量是否已經定義,其語法格式為: ``` bool defined(string constants_name) ``` 它只有參數constant_name,指的是要獲取常量的名稱,若存在則返回布爾類型true,否則返回布爾類型false; (注:bool表示函數返回值類型為布爾類型) ``` <?php define("PI1",3.14); $p = "PI1"; $is1 = defined($p); $is2 = defined("PI2"); var_dump($is1); ? ? ? ? ? //bool(true) var_dump($is2); ? ? ? ? ? //bool(false) ?> ``` # 內置常量 `PHP_OS`? ? ? php所在操作系統的名稱 `PHP_VERSION` ?當前的php的版本號 魔術常量(下面都是兩個下劃線額) `__LINE__` ? 文件中的當前行號 `__FILE__` ? ?文件的完整路徑和文件名 `__FUNCTION__`? 函數名稱 `__CLASS__` ? 類的名稱 `__METHOD__` ? 類的方法名
                  <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>

                              哎呀哎呀视频在线观看