读书篇:《细说PHP》二、PHP的基本语法、变量、常量、以及运算符
今天我繼續來讀《細說PHP》。
第五章,本章書中講了,PHP的基本語法、變量、常量、以及運算符。
先說變量,書中是如此描述的:變量是用于臨時存儲值的容器,這些值可以是數字、文本、或復雜的排列組合。
在php中變量是最常見數據應用形式,它由變量名,變量值,變量類型組成。在實際工作中,變量的使用方式不用去特意關注,一般有良好的編碼習慣就行。
這里需要關注的是變量的類型:
變量類型分為三大類:
重點說一下布爾型:表現形式是true和false,true代表真或者“1”,false代表假或者“0”,它在邏輯判斷,關系運算中比較常用。
這里列出幾種被認為是false的其他類型:
布爾型false整型0(-1和其他非零值都認為true)浮點型(0.0)空白字符和字符串“0”沒有成員變量的數組NULL未設定值的變量PHP中的變量類型轉換分為:自動類型轉換、強制類型轉換
( 自動類型轉換只有標量類型支持 )
下面是自動轉換規則:
強制類型轉換則通過在變量前聲明**(int)、(bool)、(string)、(array)、(object)**
php中的運算符
PHP支持很多運算符,我們一個一個來說,
算數運算符:
就是常見的數學操作符,加減乘除,在php中增加了累加(++)和遞減(–)以及求余(%)。
字符串運算符
也叫連接符,它的符號是一個點.
賦值運算符:
(=)號是賦值。
(+=)是在變量賦值之前先進行相加運算
(-=)是在變量賦值之前先進行相減運算
(*=)是在變量賦值之前先進行相乘運算
(/=)是在變量賦值之前先進行相除運算
(%=)是在變量賦值之前先進行求余運算
( .= )是在變量賦值之前先進行連接運算
比較運算符:
也是數學里就有的概念:
(>)大于、(<)小于、(>=)大于等于、(<=)小于等于,
( == )等于、( === )全等(除了具有等于號的功能,還要類型一致),
( != )不相等 ( <> )不相等、( !== ) 非全等
邏輯運算符:
( or 、||)表示邏輯 或
( and 、 &&)表示邏輯 與
( ! )表示邏輯 非
還有位運算符,錯誤控制運算符等等,用到地方很少。
( 注意的是有一個三元運算符實際開發中常常用到 )
說到運算符就不得不提,運算符的優先級,也是實際開發中會用到的。
順序從左到右依次(只列舉常用的):
( ++-- ) > ( ! ) > ( * / % ) > ( + - ) > ( <<= >=> ) > ( & ) > ( && ) > ( || ) > ( ?: ) > (賦值運算) > ( and ) > ( or )php還有兩個有關變量相關的技術點,可變變量,變量的引用賦值。
重點說一下引用賦值,書中給出的解釋:引用賦值,這意味著新的變量簡單的引用了原始變量。改動新的變量當影響到原始變量。
我們來舉個例子:
一般的變量賦值如下圖,新建一個變量$A,會在內存開辟一塊空間出來存放。
再創建一個變量$B,這樣內存還會新開辟一塊空間存放。
而引用變量不用,當新建一個變量$ C,同時將$A引用賦值(&)給它,就如下圖,內存并沒有重新開辟空間出來。
這樣的當你改變$ C和$A任何一個的值時,對方也會跟著改變,因為他們指向了同一塊內存空間。
說到這里我想到了php的寫時復制機制(也叫cow),主要是說給新建的變量賦值對象是原有的變量時,此時內存不會新開辟空間,只有當該變量值被改變時才會重新創建空間。這個具體在以后《php7內核剖析》中詳細詳解。
最后來說PHP常量
書中對常量的解釋:在腳本執行期間一個常量一旦被定義,就不能更改或者取消。
常量的的定義方式有兩種:define、const。
- define通常定義全局常量,一般用于全局配置。
- const是在類中使用。
- php中還有很多預定義常量,這里就不細說了。
總結
以上是生活随笔為你收集整理的读书篇:《细说PHP》二、PHP的基本语法、变量、常量、以及运算符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js函数节流
- 下一篇: 服务器php 启动命令_服务端的cli方