字串是一系列字元。
按字元存取和修改字串
可以透過使用方數組括號指定字串後所需字符的從零開始的偏移量來存取和修改字串中的字符,如$str[42]中。為此,可以將字串視為字元數組。
注意:出於相同的目的,也可以使用大括號存取字串,如 $str{42} 所示。但是,從 PHP 5.3.0 開始,此語法已被棄用。請改用方括號,例如 $str[42]。
警告
寫入超出範圍的偏移量會用空格填滿字串。非整數類型將轉換為整數。非法偏移類型會發出 E_NOTICE。負偏移量在寫入時發出 E_NOTICE,但讀取空字串。僅使用指定字串的第一個字元。分配空字串會分配 NUL 位元組。
以上都是php手冊中的原話。
需要注意的時候,我們訪問資料庫的時候都是使用方括號“[]”,字串作為一個也可以使用運算符“[]”進行存取但是,需要注意的一點就是,存取字串的時候,操作符「[]」中的內容會被轉換為int型別的。
eg: $str ='123456';
echo $str['php'];//結果是1,因為offset 'php'轉換為整數為0,既是存取字串的第一個字符。
var_dump(isset($str['php']));//結果是bool(true)原理同上。
所以,在我們使用isset判斷一個設定是否存在某個鍵的時候,應該先判斷是否存在某個鍵的時候,應該先判斷試下,傳送過來的資料是否是資料庫,然後再判斷是否存在指定的key
eg://如果需要判斷傳送過來的資料庫是否存在'php'這個key時候,比較安全的做法為:
複製程式碼程式碼如下:
function is_set($arr, $key){
if (is_array($arr) ) && isset($arr[$key])) {
//存在該值的邏輯
} else{
//$arr 不是資料庫或資料庫$arr 不存在key $key 的邏輯
}
}
以上就介紹了 Adam Lambert Trespassing PHP STRING 陷阱原理說明,包括 Adam Lambert Trespassing 方面的內容,希望對 PHP 教學有興趣的朋友有所幫助。