PHP--常量如何取值
(1)使用常量名直接獲取(2)用constant(string constant_name)函數返回一個值
PHP--常量是否被定義
“Constant XXX already defined”警告:常量已被定義
用defined()函數判斷常量是否被定義,bool defined(string constants_name) 返回boolean類型
PHP--賦值運算符
& 引用賦值,兩個變量共享一塊內存,如果內存存儲的數據變了,那麼兩個變量值都變。
PHP--比較運算符
== 等於
=== 全等於 值相同,類型也相同
!= , <> 不等
!== 非全等,值不等或者類型不同
三元運算符(“?:”)對於表達式(e1)?(e2):(e3);e1值爲true,則表達式值爲e2,否則爲e3;
PHP--邏輯運算符
and 、&& 與 or、||或 xor異或 !非
PHP--連接符
. 和 .=
PHP--錯誤控制運算符
@放置在一個PHP表達式之前,該表達式可能產生的任何錯誤信息都被忽略掉;
如果激活了track_error(在php.ini中設置)特性,表達式所產生的任何錯誤信息都被存放在變量$php_errormsg中,此變量每次出錯都會被覆蓋。
@不會屏蔽解析錯誤的信息,不能把它放在函數或定義之前,也不能用於條件結構
foreach()
不取下標:foreach(數組 as 值) 取下標:foreach(數組 as 下標 =>值)
數組
基本和java差不多
array(“”,””);
array(“1”=>”mm”);
print_r();輸出數組鍵及值
對象
$car = new Car();聲明對象 也可以用變量創建$cName=’Car’;$car=new $cName();
echo $car->getName();調用對象
靜態屬性調用方法 ::
對象屬性
public protected private
構造函數和析構函數
構造函數_construct()
析構函數_destruct() 當某個對象的所有引用被刪除,或對象被顯示銷燬時會執行的函數;
下午在農機局參與項目的討論與學習。
PHP方法的重載
通過__call來實現,當調用不存在的方法時,將會轉爲參數調用__call方法,當調用不存在的靜態方法時會使用__callStatic重載
屬性的重載
通過__set,__get,__isset,__unset分別實現對不存在的屬性賦值、讀取、判斷屬性是否設值、銷燬屬性。
PHP對象複製
關鍵字__clone賦值一個對象,和原對象沒有關係。
serialize對象序列化 unserialize反序列化爲對象
正則表達式匹配模式
分隔符/ # ~
如果模式中包含分隔符,則分隔符需要用反斜槓進行轉義/http:\/\// 目標是http://
模式中有較多的分隔符則換其它字符爲分隔符,或者用preg_quote進行轉義
$p=’http://’; $p=’/’.preg_quote($p,’/’).’/’;
元字符與轉義
常用的元字符:\一般用於轉義字符 ^斷言目標的開始位置(或在多行模式下是行首) $斷言目標的結束位置(或在多行模式下是行尾) .匹配除換行符之外的任何數字 [開始字符類定義 ]結束字符類定義 |開始一個可選分支
(子組的開始標記 )子組的結束標記 ?作爲量詞,表示0次或1次匹配。位於量詞後面用於改變量詞的貪婪特性。 *量詞,0次或多次匹配 +量詞,1次或多次匹配 {自定義量詞開始標記 }自定義量詞結束標記
+貪婪模式:儘可能多地匹配 ?懶惰模式:儘可能少地匹配
\w 字母 \d 數字
preg_match只能匹配一次結果,
preg_match_all循環獲取一個列表的匹配結果數組;$matches[0]保存完整的所有匹配,$matches[1]中保存第一個子組的所有匹配,以此類推;
preg_replace() 替換
農機局項目agr_refer_relation_expression表的構建,agr_refer_relation表中“農作物總種植面積” 有七條記錄很難區分,通過is_ts字段判斷出總的那個數據是哪個。