php基礎學習筆記(12)

來源:互聯網
上載者:User
php基本文法

php    //這個是php單行注釋    /*        這是多行注釋    */    //每條php語句使用英文分號結束——必須使用!    //php是一門區分大小寫語言——但函數名除外    //php的任何一個變數名都要使用一個$符開頭。?>

變數和常量

php中,變數使用一個$符號開頭。變數通常是直接賦值(此時如果是第一次賦值也就表示定義)。

常量:設定一個其值不會也不應該改變的資料標識符(資料名字),比如數學上的“pi”。

$pi = 3.14; //這是變數

define(“PI”, 3.14); //這是定義一個常量,名字為“PI”,值為3.14,這裡也就類似賦值

常量定義的同時也就是賦值,且只是這一次性的!

常量和變數的區別:

  • 常量前面沒有貨幣符號($)
  • 常量只能用 define() 函數定義,而不能通過指派陳述式賦值
  • 常量可以不用理會變數範圍的規則而在任何地方定義和訪問
  • 常量一旦定義就不能被重新定義或者取消定義
  • 常量的值只能是標量(即整數,浮點數,字串,布爾)

資料類型:

基本類型(標量類型):

布爾類型(bool,boolean): 只有兩個資料:true false

字元類型(string):可以是單引號,也可以是雙引號,還可以是“定界符”格式

整數類型(int,integer):

$v1 = 10;

$v2 = 012; //以0開始的數字表示“8進位”整數,這裡相當於10進位的10

$v3 = 0x1F; //以0x開始的數字表示16進位整數,這裡相當於10進位的31

浮點類型(float,double)

$v4 = 12.34;

$v5 = 12.34e5; //12.34乘以10的5次方

複合類型:

數群組類型:

物件類型:

特殊類型:

資源類型:表示某種“外界資料”的類型。

空類型(null):只有一個資料,就是“null”

3種字串類型的區別:

$str1 = "abc\ndefg1";    //雙引號字串中可以識別以下逸出字元:\"  \n  \r  \t  \\  \$$str2 = 'a\bc\ndefg2\\';        //單引號字串中只能識別以下逸出字元:\'  \\。其中"\\"通常只用於最後一個字元//下述為定界符字串,其中的“ABCD”是隨意命名的一個符號。字串也就使用該符號結尾。//定界符字串中可以識別以下逸出字元:\n  \r  \t  \\  \$$str3 = <<<ABCDabc\nde"f'g3這叫做定界符字串這個範圍的任何內容都是屬於str3這個字串的內容換行也可以直接換還可以寫html和js等等。。。比如:ABCD;//特別注意:上述一行定界符字串的結束符只能出現該名字本身和一個分號,不能有任何其他內容,比如空格,縮排(tab符)//注意:在雙引號字串和定界符字串中,可以直接識別變數並用該該變數的值來填充其內容。//如果想要不被識別,則需要使用"\$"來將該$符號進行轉義    $i = 5;    echo "$i=" . $i ;

傳值方式:

值傳遞(賦值傳值):將一個變數的值拷貝一份,然後賦值給另一個變數,此時兩個變數的值相等(相同),但兩個變數是完全獨立的沒有關聯的變數。

預設情況下,在php中,單一資料型別和數組以及空類型使用值傳遞。

引用傳遞(引用傳值):將一個變數多代表的“地址”複製一份然後賦值給另一個變數,也就是相當於兩個變數同時指向(對應)一個相同的地址——此地址也就代表資料的位置。此時兩個變數值相等的同時,也表示這兩個變數其實指代的是一份共同的資料。

預設情況下,在php中,物件類型以及資源類型使用引用傳遞。

不過:

我們也可以人為將預設使用賦值傳遞的資料來使用引用傳值。文法是:

變數1 = &變數2;

舉例:

$v1 = 10;

$v2 = &$v1; //$v1和$v2此時代表“一個資料內容”

$v1++;

echo $v2;

對比js:

js中,只有預設傳值方式,沒有人為設定方式

js中:預設值傳遞的類型有:數字,字元,布爾,兩個特殊類型

預設引用傳值的類型有:數組, 對象

運算子:

l 算術運算子: + - * / % ++ --

  • +號只做“算術運算”,沒有雙重含義。
  • ++ --符號含義和用法完全同js。

l 寫在變數前,則:先自加(自減),再做其他運算(比如賦值)

l 寫在變數後,則:先做其他運算(比如賦值),再自加(自減)

  • %號只對整數進行取與運算,如果不是整數,會先自動轉為整數再取餘

l 比較子:== != > >= < <= ===(全等於) !==(不全等於)

  • ==通常表示“模糊相等”,===表示精確相等(只有資料類型和資料值都一樣才等)
  • 模糊相等的各種情況請查手冊:附錄〉類型比較表

l 條件運算子:(expr1) ? (expr2) : (expr3),例:

  • 含義:對錶達式exp1進行求值判斷,判斷結果如果是true,則整個運算式的結果就是exp2,否則整個運算式的結果是exp3
  • $v1 = $fs>60 ? "及格" : "補考" ; //則v1根據fs的值有兩個情況
  • 補充知識:一元運算子有:!, ++, --, ~,, 二元運算子就是我們用得最多的運算子,三元運算子就這一個。

l 邏輯運算子:&&(與) ||(或) ! (非)

  • 邏輯與&&: 只兩個資料都是true的時候,結果才是true
  • 邏輯或||: 只要有一個資料是true的時候,結果就是true
  • 邏輯非!: 取邏輯資料的相反值。

l 字串運算子:. (即英文句號) .=(即類似“+=”)

  • .=只是一個“簡寫法”而已,$v1 = $v1 . “abc”; è $v1 .= “abc”;

l 位元運算符:&(與) |(或) ~(非) ^(異或) <<(左移) >>(右移)

  • 位元運算符都是針對數位二進位來進行的。
  • 按位與&:只有兩個對應位上的數字都是1的時候結果才是1
  • 按位或|:只要有一個對應位上的數字是1,結果就是1
  • 按位非~:取反,即1變成0,0變成1
  • 按位異或^:兩個對應位上的數字不同的時候結果就是1

l 賦值運算子: = += -= *= /= %= .=

運算子的優先順序問題:基本同js。

資料類型轉換

在js中,基本沒有資料類型轉換的概念,實際的轉換都是“自動發生”的——預設轉換。

js中有兩個“類似”類型轉換的函數: parseInt(….) parseFloat(…)

php中,既有預設轉換,也有強制轉換。

預設轉換舉例:

$v1 = 10 - “3”;        //7;    $v2 = 10 + “3”;        //13;    $v3 = 10 + “3abc”;    //13;    $v4 = 10 + “3.5abc”;    //13.5;    $v5 = 10 + “abc3”;    //10;    $v5 = 10 + “abc”;    //10    $v5 = “10” + “abc”;    //10    $v5 = “10ABC” + “5abc”;    //15    $v5 = “ABC10” + “abc5”;    //0    $v5 = “ABC” + “abc”;    //0

………………….凡是使用算術運算子進行運算,都會“看成”數字,如果實在轉不成一個數字,也會當做0來進行計算。

強制轉換:

文法: (要轉成的目標類型)資料;    舉例:    $v1 = (int) “3.5abc”;    //3;int類型    $v1 = (float) “3.5abc”;    //3.5;    //這裡其實是float類型    $v1 = (string) 3;        //”3”;    $v1 = (bool) “3.5”;        //true

——精選將一個資料轉換為bool類型的時候:查手冊:附錄〉類型比較表〉對變數 $x 進行比較 〉 if($x)列

以上就介紹了php基礎學習筆記(12),包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.