В PHP вы можете придумать что-то вроде объекта; (объект), или вы можете использовать settype ($ var, "object") – но мой вопрос в чем разница между этими двумя?
Какой из них более эффективен / лучше использовать? На данный момент я нахожу, что использование (объект) выполняет эту работу, но интересно, почему есть функция settype.
Кастинг изменяет то, что обрабатывается переменной, как в текущем контексте, settype изменяет его навсегда.
$value = "100"; //Value is a string echo 5 + (int)$value; //Value is treated like an integer for this line settype($value,'int'); //Value is now an integer
В основном settype является ярлыком для:
$value = (type)$value;
settype()
изменяет фактическую переменную, которую он передал, в скобках не делается.
Если вы используете settype
в $var
чтобы изменить его на целое число, он будет постоянно потерять десятичную часть:
$var = 1.2; settype($var, "integer"); echo $var; // prints 1, because $var is now an integer, not a float
Если вы просто выполняете бросок, исходная переменная не изменяется.
$var = 1.2; $var2 = (integer) $var; echo $var; // prints 1.2, because $var didn't change type and is still a float echo $var2; // prints 1