PHP變量
命名規範
Ø 必須以$符開始
Ø 聲明變量時一般使用英文,也可以使用數字,但是不能以數字開頭。
Ø 不可以使用特殊字符,但是下劃線_除外
Ø 變量名嚴格區分大小寫
可變變量
Ø 可變變量只是變量的一種,可以在開頭連續使用多個$符號
Ø 理論上$可以無限使用,實際中一般指使用2個$
Ø 結合方式:結合方式是從右到左依次結合一個$
引用賦值
變量2=&變量1
更改其中一個變量(1 也好2也罷) 剩下那個變量也會跟着更改這就是引用賦值
相關功能
Ø 刪除變量的功能 unset();
Ø 檢測變量是否設置值 isset();
u 只要賦值,且不是null的數據那麼檢測結果都爲true
u 如果變量爲賦值或者賦值爲null 那麼檢測結果爲false
Ø 檢測變量值爲空的功能:empty();
int 0
float 0.0
string ''和0
booleam false
array 空數組
object 對象都不爲空
resource 資源都不爲空
null 本身就爲空
返回true表示變量爲空,返回false表示變量不爲空
PHP常量
常量的概述
通常不會改變的量就是常量
常量的定義
Ø define('常量名','常量值',ture/false);
注意:第三個參數是可選參數,默認false
注意事項:
u 常量名:
常量名開頭不可以使用$;
聲明常量不要使用中文,要用使用英文,推薦大寫
可以使用數字,但是不能以數字開頭
不可以使用特殊字符,除了下劃線
常量名要有意義
常量是否區分大小寫,有define的第三個參數決定。true是不區分大小寫,默認false,區分大小寫。
u 常量值:
PHP版本<7 常量的值僅能在標量中選取
PHP版本>=7 常量的值僅能在標量或者數組中選取
Ø PHP版本>5.3之後可以使用
使用 const關鍵字聲明常量
格式:const常量名=常量值
該方法只有聲明和define不同,其他規則都相同。
Ø 區別:
const不能再流程控制中定義,而define 可以定義
記住:
u 只要不在類中聲明常量其他地方都使用define
u 如果在類中聲明常量則使用const來定義
常量的特點
Ø 常量一旦定義就不可以在改變其值.
Ø 常量習慣上使用大寫
Ø 常量如果聲明就要有值。如果不聲明就將該常量名稱,當做字符串來處理
系統的魔術常量
Ø __FILE__ 表示當前文件相對於系統的絕對路徑
Ø __LINE__ 表示當前常量所在的行
Ø __FUNCTION__ 可以在函數中獲取當前函數的名稱
Ø __CLASS__ 表示當前常量所在的class的名稱
Ø __METHOD__ 表示當前常量所在的類和方法名
相關的幾個功能
Ø constant() 獲取一個常量值的功能
作用:和echo差不多,但當一個常量名是一個字符串的時候,才能發揮
constant的作用。
格式:
返回常量值=constant()
Ø get_defined_constants() 獲取當前定義的所有常量集合,返回一個數組
Ø defined() 檢測一個常量是否被定義
格式:
返回結果變量=defined('檢測的常量名')
其返回值爲布爾值。
PHP運算符
注意:運算符的兩邊要給個空格。增加代碼的可讀性。
字符串運算符
在PHP中字符串運算符就是用來連接字符串的符號,在PHP中只有一個.(英文狀態下的點)
賦值運算符
= 普通賦值運算符 爲變量和常量賦值
+= 加法賦值運算符
$num = 10;
$num += 5;
//完成格式$num=$num+5;
-= 減法賦值運算符
*= 乘法賦值運算符
/= 除法賦值運算符
%= 取模賦值運算符
.= 字符串賦值運算符
比較運算符
> 大於
< 小於
>= 大於等於
<= 小於等於
== 等於 只判斷值,不判斷類型
!= 不等於 值不相等就爲真
=== 全等於 值和類型都相等
!== 非全等於 除了全等其餘都是非全等
算術運算符
+ - * /
%(求餘或取模)
++(自增運算)
--(自減運算)
自增自減運算需要注意事項:
u 自增或者自減運算就是在原值的基礎上進行+1或者-1的操作
u 在進行自增或者自減運算時,運算符符號可以在變量前也可以在變量後,但是意義不一樣
u 如果自增或者自減的運算符在變量前,表示先將當前變量進行+1操作,然後使用該變量。如果運算符在變量後,則表示先使用當前變量在進行自增或者自減運算。
(一定要理解先使用在進行。
比如:$a=15
$b=10
$c=$a++ + $b++
// ++在後先使用 則$c=15+10 $a=16 $b=11)
u 自增自減運算對布爾值無效,一般也不用與數組、對象、資源等類型。常用與整型
邏輯運算符
Ø 邏輯與運算 && 或者 and (一般用&&,因爲and的優先級比&&的低)
兩個值都爲真時,結果爲真。其餘情況都爲假。
Ø 邏輯或運算 || 或者 or (也有優先級的高低)
u 兩個值有一個爲真,結果就爲真。
u 只有兩個值都爲假時,結果才爲假。
Ø 邏輯非運算 ! 或者 not(一般不用not)(也有優先級高低的問題)
在變量前面 ! 真變假,假變真。
Ø 邏輯異或運算 xor
相同爲假 不同爲真。
位運算符
位運算符是在二進制的基礎上進行的。
Ø 按位與 &
在二進制的基礎上,對每一位進行邏輯與運算 比如:
$no1=15; //二進制就是1111
$no2=8; //二進制就是1000
$result =$no1 & no2
//二進制的1000也就是8 從個位到千位一個一個進行與運算
Ø 按位或 |
在二進制的基礎上對每一位進行邏輯或運算
Ø 按位異或 ^
在二進制的基礎上對每一位進行邏輯異或運算
Ø 按位非 ~
在二進制的基礎上對每一位進行邏輯非運算。
注意:如果是二進制第一位符號位爲1 則該數爲負數。是負數,載二進 制中必須反碼,在補碼+1
PS:有一定的規律 。
$no1=19;
$no2=~$no1;
//$no2=-20
Ø 左移 <<
在二進制的基礎上將所有二進制的數值想左移動1位,移動之後的空白位置補0,效果類似乘以2
$a=128;
$b=$a>>2;
//$b=128*2^2(移動幾位^幾)每一次移動都表示"乘以2"
Ø 右移 >>
在二進制的基礎上將所有二進制的數值想右移動1位,移動之後移出的最後一位會被刪除 效果類似除以2
其他運算符
Ø 錯誤抑制符 @
用於屏蔽單行錯誤,對於多行無效,儘量少用@符號,效率太低。
Ø 三元運算符 ? (類似於if)
格式:
條件?真值:假值
u 根據條件的真假決定取真值還是假值
u 如果格式條件結果爲true,那麼就將真值賦值給變量
u 如果格式條件結果爲false,那麼就將假值賦給變量
-> 對象成員訪問
=> 數組元素訪問符號
, 聲明多變量的分隔符 for循環的第一個參數使用
``(反引號)用於執行系統命令
運算符的優先級
解決運算符優先級的最好辦法,推薦使用()
在手冊中可查看優先級。