2010-07-22 75 views

回答

10

chr()功能將一個字節到它的對應的ASCII碼和intval()函數獲取變量的整數值。

如果我們把語句拆分成兩個不同的線路,這將是:

$a = chr(255); // $a is now a string 
echo intval($a); 

如果選中intval()的文檔,你會發現:

字符串將最有可能迴歸0 雖然這取決於字符串的最左邊的 字符。適用於整數轉換的常見規則 。

這就是爲什麼結果是零。

7

字節爲0xFF並不代表任何八進制,十進制或十六進制數位什麼intval所期待的。你可能想要ord function

1

要輸出255,您需要:

echo intval(ord(chr(255))); 

有在ASCII 128個序號,255出來是ÿ所以當你把它轉換爲數字與intval,這將是0

0

因爲chr傳遞一個字符串,在這種情況下只有一個字符,字符0xFF或更好地被稱爲ÿ

intval另一方面確實從字符串轉換到基於所述字符串的內容,而不是字符的整數。

echo intval("33");  // will print 33 
    echo intval("10", 8);  // will print 8 
    echo intval("0xFF", 16); // will print 255 

    echo intval("m"); // will print zero... 
        //you can't convert letters like that to numbers. 
0
chr(255) 

返回字符對應的ASCI 255

intval嘗試從可變

襯托出整數部分,因爲CHR(255)返回一個非數字字符等等intval GET沒有int值和返回0

+2

有在US-ASCII只是128個字符。 – Gumbo 2010-07-22 07:46:13