📖 Scenario: Imagine you are working on a PHP script that receives data as strings but needs to convert them into different types for calculations and logic.
🎯 Goal: You will learn how to use the settype function in PHP to change the type of variables from string to integer, float, and boolean.
📋 What You'll Learn
Create variables with string values representing different data types
Use settype to convert these variables to integer, float, and boolean
Print the variables before and after conversion to see the effect
💡 Why This Matters
🌍 Real World
In real PHP applications, data often comes as strings from user input or databases. Converting these strings to the correct types is important for calculations and logic.
💼 Career
Understanding how to change variable types with <code>settype</code> helps you handle data correctly in PHP, a common skill needed for backend web development jobs.
Progress0 / 4 steps
1
Create string variables
Create three variables called $numString, $floatString, and $boolString with the string values "123", "45.67", and "true" respectively.
PHP
Hint
Use the assignment operator = to set each variable to the exact string value.
2
Use settype to convert to integer
Use settype to change the type of $numString to integer.
PHP
Hint
Call settype with the variable and the string "integer" as arguments.
3
Convert other variables using settype
Use settype to convert $floatString to float and $boolString to boolean.
PHP
Hint
Use two separate settype calls for $floatString and $boolString with the correct type strings.
4
Print variables after conversion
Print the values of $numString, $floatString, and $boolString using var_dump to show their types and values.
PHP
Hint
Use var_dump on each variable to see its type and value clearly.
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.