我有基本的PHP問題PHP如何在內部表示字符串?
可以說我有一個字符串「2013年2月3日」,這是怎麼內部表示在PHP中,是比較兩個當它轉換爲整數或十六進制相當於
字符串,PHP如何在內部比較它們?
感謝您提前回答
我有基本的PHP問題PHP如何在內部表示字符串?
可以說我有一個字符串「2013年2月3日」,這是怎麼內部表示在PHP中,是比較兩個當它轉換爲整數或十六進制相當於
字符串,PHP如何在內部比較它們?
感謝您提前回答
字符串是字符串。沒有轉換髮生;你的字符串恰好包含了一些數字,這很好,但PHP並沒有將它與任何其他字符串進行任何處理。
PHP比較字符串的方式與任何其他語言的方式相同:它逐個字符地遍歷兩個字符串,並查找第一對不同的字符。一旦找到一個字符串,那麼具有較低ASCII值的字符的字符串(比如從ord()
得到的字符串)被認爲比另一個字符串「小於」。
您可能想對'strcmp'和相關函數進行高級字符串比較的評論。 –
PHP字符串只是一個字節序列,沒有編碼標記。訪問here獲取更多信息..
PHP是用C編寫的。所有變量都是ZVAL結構。
請閱讀這些教程以瞭解有關PHP內部結構的更多信息,並開始編寫擴展。
表1示出了多種類型,和它們相應的字母代碼 和C類型可與zend_parse_parameters()可以使用:
Type Code Variable Type
Boolean b zend_bool
Long l long
Double d double
String s char*, int
Resource r zval*
Array a zval*
Object o zval*
zval z zval*
沿着char *的* int *表示字符串的大小 - 即字符串不需要以'\ 0'結尾? –
@ ring0這100%是正確的,在PHP中的字符串不需要'\ 0'終止:) –
它存儲爲一個字符串。顯然,在內部它都是二元的。 [比較運算符](http://php.net/manual/en/language.operators.comparison.php)和[類型比較](http://php.net/manual/en/types.comparisons.php) – Kermit