/ / Използване на settype в PHP вместо typecasting с помощта на скоби, Каква е разликата? - php, леене, преобразуване на типове

Използване на settype в PHP вместо typecasting използвайки скоби, Каква е разликата? - php, леене, преобразуване на типове

В PHP можете да въвеждате нещо като обект като този; (обект) или можете да използвате settype ($ var, "object") - но въпросът ми е каква е разликата между двете?

Кое е по-ефективно / по-добре да се използва? В момента намирам, че използвам (обект), върши работата, но се чудех защо има и функция settype.

Отговори:

17 за отговор № 1

Кастингът променя какво се обработва в променливата в текущия контекст, като го променя постоянно.

$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;

4 за отговор № 2

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