What does a nullable type mean in PHP function parameters?
A nullable type means the function parameter can accept either the specified type or null. It is declared by adding a question mark ? before the type.
Click to reveal answer
beginner
How do you declare a nullable integer parameter in a PHP function?
You declare it by adding a question mark before the type like this: <code>function example(?int $number) { ... }</code>. This means <code>$number</code> can be an integer or <code>null</code>.
Click to reveal answer
intermediate
What happens if you pass null to a function parameter that is not nullable?
PHP will throw a TypeError because the parameter expects a specific type and null is not allowed unless the type is nullable.
Click to reveal answer
intermediate
Can return types in PHP functions be nullable? How?
Yes, return types can be nullable by adding a question mark before the return type. For example: <code>function getValue(): ?string { ... }</code> means the function returns a string or <code>null</code>.
Click to reveal answer
beginner
Why are nullable types useful in PHP functions?
Nullable types allow functions to explicitly accept or return null values, making the code clearer and safer by defining when null is an acceptable value.
Click to reveal answer
How do you declare a nullable string parameter in a PHP function?
Afunction example(string? $param) {}
Bfunction example(?string $param) {}
Cfunction example(string|null $param) {}
Dfunction example($param: ?string) {}
✗ Incorrect
The correct syntax is to put a question mark before the type: ?string.
What will happen if you pass null to a non-nullable int parameter?
APHP will throw a TypeError.
BIt will work fine.
CThe parameter will be converted to 0.
DPHP will ignore the parameter.
✗ Incorrect
Passing null to a non-nullable parameter causes a TypeError in PHP.
Which of these is a valid nullable return type declaration?
Afunction foo(): array|null {}
Bfunction foo(): array? {}
Cfunction foo(): ?array {}
Dfunction foo(): nullable array {}
✗ Incorrect
The correct syntax for nullable return types is a question mark before the type, like ?array.
Nullable types were introduced in which PHP version?
APHP 5.6
BPHP 7.4
CPHP 8.0
DPHP 7.1
✗ Incorrect
Nullable types were introduced in PHP 7.1.
What does this function signature mean? function test(?float $value): ?float
AParameter and return value can be float or null.
BParameter must be float, return can be null.
CParameter can be null, return must be float.
DNeither parameter nor return can be null.
✗ Incorrect
Both the parameter and return type are nullable float, meaning they can be float or null.
Explain how to declare a nullable parameter and a nullable return type in a PHP function.
Think about the question mark symbol and where it goes.
You got /4 concepts.
Why is it important to use nullable types in PHP functions? Give an example scenario.
Consider when a value might be missing or optional.
You got /4 concepts.
Practice
(1/5)
1. What does a nullable type declaration like ?int mean in a PHP function parameter?
easy
A. The parameter is optional and defaults to zero.
B. The parameter can be either an integer or null.
C. The parameter can be any type except integer.
D. The parameter must always be an integer, never null.
Solution
Step 1: Understand nullable type syntax
The ? before int means the parameter can accept null or an int value.
Step 2: Interpret the meaning in function parameters
This allows the function to safely accept missing or empty values represented by null.
Final Answer:
The parameter can be either an integer or null. -> Option B
Quick Check:
Nullable type = int or null [OK]
Hint: Nullable means type or null allowed, check for ? before type [OK]
Common Mistakes:
Thinking nullable means optional parameter
Assuming nullable excludes null values
Confusing nullable with default values
2. Which of the following is the correct nullable type syntax to declare a function parameter that accepts a nullable string in PHP?
easy
A. function greet(string? $name) {}
B. function greet(string|null $name) {}
C. function greet(?string $name) {}
D. function greet($name?: string) {}
Solution
Step 1: Recall nullable type syntax in PHP
Nullable types use a question mark ? before the type, like ?string.
Step 2: Check each option's syntax
function greet(?string $name) {} uses ?string correctly. function greet(string|null $name) {} uses union type syntax which is valid in PHP 8+, but the question asks for nullable syntax specifically. Options C and D are invalid syntax.
Final Answer:
function greet(?string $name) {} -> Option C
Quick Check:
Nullable syntax = ?type before parameter [OK]
Hint: Use ? before type for nullable, not after or inside parentheses [OK]
Common Mistakes:
Placing ? after the type name
Using union type syntax instead of nullable syntax
Misplacing the question mark in parameter
3. What will be the output of this PHP code?
function checkAge(?int $age) {
if ($age === null) {
return "Age not provided";
}
return "Age is $age";
}
echo checkAge(null);
medium
A. Age not provided
B. Age is
C. Error: Argument must be int
D. Age is null
Solution
Step 1: Understand nullable parameter and null check
The function accepts an ?int, so null is allowed. It checks if $age === null and returns "Age not provided".
Step 2: Call the function with null
Calling checkAge(null) triggers the null check, so it returns "Age not provided".
Hint: Check for null explicitly when using nullable types [OK]
Common Mistakes:
Assuming null converts to empty string
Expecting type error on null input
Ignoring strict null check with ===
4. Identify the error in this PHP function declaration:
function setName(?string name) {
echo $name;
}
medium
A. Missing dollar sign ($) before parameter name.
B. Nullable types cannot be used with strings.
C. Function must return a value.
D. Parameter cannot be nullable without default value.
Solution
Step 1: Check parameter syntax
In PHP, all variable names must start with a dollar sign $. The parameter name is missing $.
Step 2: Validate nullable type usage
Nullable types like ?string are valid. The function does not require a return value. Parameters can be nullable without default values.
Final Answer:
Missing dollar sign ($) before parameter name. -> Option A
Quick Check:
Parameter variables need $ prefix [OK]
Hint: Always prefix parameter names with $ in PHP functions [OK]
Common Mistakes:
Omitting $ in parameter names
Thinking nullable types need default values
Expecting functions must return values
5. You want to write a PHP function that accepts a nullable float and returns its square if given, or returns 0 if null. Which of the following implementations is correct?
hard
A. function square(?float $num): float {
return $num * $num;
}
B. function square(?float $num): ?float {
return $num ? $num * $num : 0;
}
C. function square(float $num = null): float {
return $num * $num;
}
D. function square(?float $num): float {
if ($num === null) {
return 0;
}
return $num ** 2;
}
Solution
Step 1: Check nullable parameter and return type
The function accepts ?float and returns float. It must handle null safely and return a float.
Step 2: Analyze each option's logic
function square(?float $num): float {
return $num * $num;
} does not check for null and will cause an error if $num is null. function square(?float $num): float {
if ($num === null) {
return 0;
}
return $num ** 2;
} checks for null explicitly and returns 0, then squares the number correctly. function square(float $num = null): float {
return $num * $num;
} uses default null but parameter is not nullable, causing a type error. function square(?float $num): ?float {
return $num ? $num * $num : 0;
} returns nullable float but uses a loose check $num ? which fails for 0.0 (falsey), so it returns 0 incorrectly.
Final Answer:
function square(?float $num): float {
if ($num === null) {
return 0;
}
return $num ** 2;
} -> Option D
Quick Check:
Check null explicitly, return float, use strict null check [OK]
Hint: Always check null explicitly before math with nullable types [OK]
Common Mistakes:
Not checking for null before calculation
Using loose truthy checks that fail on 0.0
Mismatching return types with nullable parameters
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.