2010-07-22 3 views

ответ

10

Функция chr() превращает байт в его эквивалент ASCII, а функция intval() получает целочисленное значение переменной.

Если бы мы должны были разрывать выражение в двух разных линий, это было бы:

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

Если проверить документацию intval() «s вы заметите, что:

Струны, скорее всего, возвращение 0 , хотя это зависит от самого левого символов строки. Действуют общие правила .

Вот почему результат равен нулю.

7

байт 0xFF не представляет цифру в любом восьмеричной, десятичной или шестнадцатеричной, что intval ищет. Вы, наверное, хотели ord function.

1

Для вывода 255, вам необходимо:

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

Есть 128 порядковые номера в ASCII, то 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 прибудете нет значения int и возврата 0

+2

В US-ASCII всего 128 символов. – Gumbo

Смежные вопросы