settype changes the variable itself, no need to assign it back.
It returns true if the change worked, false otherwise.
Common types: "int", "bool", "float", "string", "array".
Summary
settype changes a variable's type directly.
Use it when you want to be sure of a variable's type.
It works with common types like int, bool, float, string, and array.
Practice
(1/5)
1. What does the PHP function settype do?
easy
A. It changes the type of a variable directly.
B. It creates a new variable with a different type.
C. It checks the type of a variable without changing it.
D. It converts a variable to a string only.
Solution
Step 1: Understand the purpose of settype
The function settype modifies the type of the variable passed to it directly, not creating a new variable.
Step 2: Compare options with the function behavior
Only It changes the type of a variable directly. correctly states that it changes the type of a variable directly.
Final Answer:
It changes the type of a variable directly. -> Option A
Quick Check:
settype changes variable type = A [OK]
Hint: Remember: settype changes the original variable type [OK]
Common Mistakes:
Thinking settype creates a new variable
Confusing settype with type checking functions
Believing settype only converts to string
2. Which of the following is the correct syntax to change variable $var to an integer using settype?
easy
A. settype($var, "int");
B. settype($var, int);
C. settype($var, 'int');
D. settype($var, 'integer');
Solution
Step 1: Recall the correct type string for integers in settype
PHP expects the type as a string like 'int' or 'integer'. Both 'int' and 'integer' are accepted, but 'integer' is the official type name.
Step 2: Check syntax correctness
settype($var, 'integer'); uses quotes and the correct type string 'integer'. settype($var, 'int'); also works as an alias. settype($var, int); misses quotes, causing syntax error. settype($var, "int"); uses double quotes which is valid but less common; both single and double quotes work in PHP.
Final Answer:
settype($var, 'integer'); -> Option D
Quick Check:
Use quotes around type string 'integer' = A [OK]
Hint: Always put the type as a quoted string in settype [OK]
Common Mistakes:
Omitting quotes around the type string
Using undefined type names without quotes
Confusing 'int' and int without quotes
3. What will be the output of the following PHP code?
$var = "123abc"; settype($var, 'int'); echo $var;
medium
A. 0
B. 123abc
C. 123
D. Error
Solution
Step 1: Understand how settype converts string to int
When converting a string to int, PHP reads the number from the start until it hits a non-digit character. Here, "123abc" converts to 123.
Step 2: Check the echo output
After settype, $var is integer 123, so echo prints 123.
Final Answer:
123 -> Option C
Quick Check:
String to int conversion stops at first non-digit = A [OK]
Hint: String to int stops at first non-digit character [OK]
Common Mistakes:
Expecting the whole string to convert
Thinking conversion results in 0 for mixed strings
The second argument to settype must be a string in quotes. Here, bool is unquoted, causing a syntax error.
Step 2: Verify other options
Converting string 'true' to boolean is valid. Echo can print booleans as 1 or empty. Variable name is valid.
Final Answer:
Missing quotes around 'bool' in settype. -> Option B
Quick Check:
Type name must be quoted string = A [OK]
Hint: Always quote the type name in settype [OK]
Common Mistakes:
Forgetting quotes around type string
Thinking echo can't print booleans
Assuming variable names cause errors here
5. Given the array $arr = ['1', '2', '3.5', 'true', 'false', '0'];, which code snippet correctly converts all elements to their proper types using settype?
hard
A. foreach ($arr as &$v) { if ($v === 'true' || $v === 'false') settype($v, 'bool'); elseif (strpos($v, '.') !== false) settype($v, 'float'); else settype($v, 'int'); }
B. foreach ($arr as &$v) { if (is_numeric($v)) settype($v, 'float'); else settype($v, 'bool'); }
C. foreach ($arr as &$v) { settype($v, 'int'); }
D. foreach ($arr as &$v) { settype($v, 'string'); }
Solution
Step 1: Analyze the array elements and desired types
Elements are strings representing integers, floats, and booleans. We want to convert 'true'/'false' to bool, numbers with '.' to float, others to int.
Step 2: Evaluate each option's logic
foreach ($arr as &$v) { settype($v, 'int'); } converts all to int, losing floats and booleans. foreach ($arr as &$v) { if (is_numeric($v)) settype($v, 'float'); else settype($v, 'bool'); } converts all numeric to float, which is incorrect for integers. foreach ($arr as &$v) { if ($v === 'true' || $v === 'false') settype($v, 'bool'); elseif (strpos($v, '.') !== false) settype($v, 'float'); else settype($v, 'int'); } checks for 'true'/'false' strings to bool, floats by '.', else int - this matches the requirement. foreach ($arr as &$v) { settype($v, 'string'); } converts all to string, no type change.
Final Answer:
foreach ($arr as &$v) { if ($v === 'true' || $v === 'false') settype($v, 'bool'); elseif (strpos($v, '.') !== false) settype($v, 'float'); else settype($v, 'int'); } -> Option A
Quick Check:
Check string values carefully for correct type conversion = C [OK]
Hint: Check string content to decide type before settype [OK]
Common Mistakes:
Converting all to int losing floats and booleans
Using is_numeric alone without checking for booleans
Forgetting to handle 'true' and 'false' strings
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.