該擴展所提供的函數(shù)用來檢測 在當(dāng)前的區(qū)域設(shè)定下(參見 setlocale()),一個字符或者字符串 是否僅包含指定類型的字符。
當(dāng)使用整數(shù)作為參數(shù)調(diào)用這些函數(shù)的時候, 這些函數(shù)的行為和 C 語言(ctype.h) 中的對應(yīng)函數(shù)一樣。 也就是說,如果傳入了小于 256 的整數(shù)參數(shù),它會把這個整數(shù)當(dāng)做 ASCII 碼值, 來檢測對應(yīng)字符是否符合要求(數(shù)值檢測的 ASCII 值范圍為 0x30-0x39)。 如果傳入的參數(shù)介于 -128 和 -1 之間(含 -128 和 -1),它會先將其加上 256,然后再進(jìn)行檢測。
當(dāng)傳入?yún)?shù)為字符串的時候,它會對字符串中的每個字符進(jìn)行檢測,
僅當(dāng)字符串中的每個字符都符合指定條件的情況下才會返回 true
。
在 PHP 5.1 之前的版本中,如果傳入空字符串總是會返回 true
,
從 PHP 5.1 開始,傳入空字符串總是會返回 false
。
傳入除整數(shù)和字符串之外的參數(shù)
會立即返回 false
。
需要提醒的是,如果可以滿足需求,請優(yōu)先考慮使用 ctype 函數(shù),
而不是正則表達(dá)式或者對應(yīng)的 "str_*"
和 "is_*"
函數(shù)。
因為 ctype 使用的是原生 C 庫,所以會有明顯的性能優(yōu)勢。
注意:
這些函數(shù)和 Python 中的 “ctypes” 庫沒有任何關(guān)系。 ctype 的名字源自對應(yīng)的 C 語言中的頭文件 ctype.h。
實際上,這個擴展是先于 Python 的 “ctypes” 的, 如果這個命名給你帶來困擾,那也不是我們的錯誤 ...