📖 Scenario: You are building a simple PHP program that handles user input which can be either a number or a text message. You want to accept both types safely using PHP's union types feature.
🎯 Goal: Create a function that accepts a parameter which can be either an int or a string. The function will return a message describing the type and value received.
📋 What You'll Learn
Create a function called describeInput that accepts a parameter with a union type int|string.
Inside the function, use is_int() to check if the input is an integer.
Return a string describing the input type and value.
Call the function with both an integer and a string and print the results.
💡 Why This Matters
🌍 Real World
Union types help PHP programs accept multiple types safely, which is common when handling user input or data from different sources.
💼 Career
Understanding union types is important for writing flexible and type-safe PHP code, a skill valued in modern PHP development jobs.
Progress0 / 4 steps
1
Create the describeInput function with a union type parameter
Write a function called describeInput that accepts one parameter named $input with the union type int|string. Inside the function, just return an empty string "" for now.
PHP
Hint
Use function describeInput(int|string $input): string to declare the function with a union type parameter.
2
Add type checking inside the function
Inside the describeInput function, use is_int($input) to check if $input is an integer. If it is, return the string "Input is an integer: " concatenated with the value of $input. Otherwise, return "Input is a string: " concatenated with $input.
PHP
Hint
Use if (is_int($input)) { ... } else { ... } to check the type and return the correct message.
3
Call the function with an integer and a string
Call the describeInput function twice: once with the integer 42 and once with the string "hello". Store the results in variables $result1 and $result2 respectively.
PHP
Hint
Call the function with 42 and "hello" and save the results in $result1 and $result2.
4
Print the results
Print the values of $result1 and $result2 each on a new line using echo.
PHP
Hint
Use echo $result1 . "\n"; and echo $result2 . "\n"; to print each result on its own line.
Practice
(1/5)
1. What does a union type in PHP allow you to do? function example(int|string $value) {}
easy
A. Only accept integer values
B. Accept multiple types for a parameter or return value
C. Only accept string values
D. Combine two functions into one
Solution
Step 1: Understand union type syntax
The | symbol between types means the parameter can be either type.
Step 2: Analyze the example function
The function accepts either an int or a string as input.
Final Answer:
Accept multiple types for a parameter or return value -> Option B
Quick Check:
Union types allow multiple types [OK]
Hint: Look for the | symbol to spot union types [OK]
Common Mistakes:
Thinking union types combine functions
Assuming only one type is allowed
Confusing union types with type casting
2. Which of the following is the correct syntax for a union type in PHP 8+? function test(?? $param) {}
easy
A. int|string, float $param
B. int&string $param
C. int|string&float $param
D. int|string $param
Solution
Step 1: Recall union type syntax
Union types use the | symbol between types, e.g., int|string.
Step 2: Check each option
int|string $param uses | correctly. int&string $param uses & which is intersection, not union. int|string&float $param mixes union and intersection incorrectly. int|string, float $param uses a comma which is invalid.