2010-07-28 6 views
0

Я читал некоторый код, который предоставил нам консультант. Это немного запутанным, и в конце функции, он читает:Разница между (int) 1 и 1 в PHP?

return (int) 1; 

Вместо:

return 1; 

PHP имеет много магии в нем; это как кость, как она выглядит, или есть веская причина, чтобы отличить целое число как целое число?

ответ

5

Нет, это то же самое. 1 - целочисленный литерал.

См. here Это все целые литералы; литье в int не имеет никакого эффекта:

$a = 1234; // decimal number 
$a = -123; // a negative number 
$a = 0123; // octal number (equivalent to 83 decimal) 
$a = 0x1A; // hexadecimal number (equivalent to 26 decimal) 

Если вы сделали return "1";, что было бы совсем другое дело. Существуют некоторые различия в поведении между "1" (строка) и 1 (int), а именно: bitwise operators.

1

Это довольно кость. Целочисленные литералы, ну ... целые числа.

1 === 1 однако 1 !== '1'

также, при необходимости, (как в данном случае это определенно не) Я хотел бы предложить не типажей с (int) использования intval() вместо этого.

+0

Почему? ... – Inigoesdr

+0

@Inigoesdr Почему? – jordanstephens

+0

Да, я не был ясен: я бы предложил не typecasting с (int) использовать intval(). – Inigoesdr

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