Bird
Raised Fist0
PHPprogramming~10 mins

Common validation patterns in PHP - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to check if a variable is set.

PHP
<?php
if ([1](
  $name
)) {
  echo "Name is set.";
} else {
  echo "Name is not set.";
}
?>
Drag options to blanks, or click blank then click option'
Aisset
Bempty
Cis_null
Dis_string
Attempts:
3 left
💡 Hint
Common Mistakes
Using empty() which returns true if the variable is empty, not just set.
Using is_null() which checks if variable is null but does not check if it is set.
2fill in blank
medium

Complete the code to validate if a string contains only digits.

PHP
<?php
if ([1]($input)) {
  echo "Input is numeric.";
} else {
  echo "Input is not numeric.";
}
?>
Drag options to blanks, or click blank then click option'
Ais_numeric
Bis_string
Cctype_digit
Dpreg_match
Attempts:
3 left
💡 Hint
Common Mistakes
Using is_numeric() which allows decimal points and signs.
Using preg_match without a proper pattern.
3fill in blank
hard

Fix the error in the code to validate an email address.

PHP
<?php
$email = "user@example.com";
if (filter_var($email, [1])) {
  echo "Valid email.";
} else {
  echo "Invalid email.";
}
?>
Drag options to blanks, or click blank then click option'
AFILTER_VALIDATE_INT
BFILTER_DEFAULT
CFILTER_SANITIZE_EMAIL
DFILTER_VALIDATE_EMAIL
Attempts:
3 left
💡 Hint
Common Mistakes
Using FILTER_SANITIZE_EMAIL which only cleans the email but does not validate.
Using FILTER_VALIDATE_INT which is for integers.
4fill in blank
hard

Fill both blanks to create an array of words longer than 3 characters.

PHP
<?php
$words = ['cat', 'house', 'dog', 'elephant'];
$longWords = array_filter($words, function($word) {
  return strlen($word) [1] [2];
});
print_r($longWords);
?>
Drag options to blanks, or click blank then click option'
A>
B<
C3
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<' instead of '>' causing wrong filtering.
Using 5 instead of 3 changing the condition.
5fill in blank
hard

Fill all three blanks to create an associative array of words and their lengths for words longer than 4.

PHP
<?php
$words = ['apple', 'bat', 'carrot', 'dog'];
$lengths = array_filter(array_combine(
  array_map(function($word) { return [1]; }, $words),
  array_map(function($word) { return [2]; }, $words)
), function($len) { return $len [3] 4; });
print_r($lengths);
?>
Drag options to blanks, or click blank then click option'
A$word
Bstrlen($word)
C>
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<' instead of '>' in the filter condition.
Using wrong variable names in map functions.

Practice

(1/5)
1.

Which PHP function is commonly used to validate if a string is a valid email address?

easy
A. preg_match with '/^\d+$/'
B. filter_var with FILTER_VALIDATE_EMAIL
C. strlen to check length
D. strtolower to convert to lowercase

Solution

  1. Step 1: Understand email validation in PHP

    PHP provides a built-in filter called FILTER_VALIDATE_EMAIL to check if a string is a valid email.
  2. Step 2: Identify the correct function usage

    filter_var with FILTER_VALIDATE_EMAIL returns the email if valid, or false if invalid.
  3. Final Answer:

    filter_var with FILTER_VALIDATE_EMAIL -> Option B
  4. Quick Check:

    Email validation = filter_var with FILTER_VALIDATE_EMAIL [OK]
Hint: Use filter_var with FILTER_VALIDATE_EMAIL for email checks [OK]
Common Mistakes:
  • Using preg_match with wrong regex for email
  • Checking length instead of format
  • Using string functions unrelated to validation
2.

Which of the following is the correct syntax to validate a URL using filter_var in PHP?

?
easy
A. filter_var($url, FILTER_VALIDATE_INT);
B. filter_var($url, FILTER_VALIDATE_EMAIL);
C. filter_var($url, FILTER_VALIDATE_URL);
D. filter_var($url, FILTER_VALIDATE_BOOLEAN);

Solution

  1. Step 1: Identify the filter for URL validation

    FILTER_VALIDATE_URL is the correct filter to check if a string is a valid URL.
  2. Step 2: Confirm correct function call

    filter_var takes the variable and the filter constant as parameters.
  3. Final Answer:

    filter_var($url, FILTER_VALIDATE_URL); -> Option C
  4. Quick Check:

    URL validation = filter_var with FILTER_VALIDATE_URL [OK]
Hint: Use FILTER_VALIDATE_URL with filter_var for URL validation [OK]
Common Mistakes:
  • Using FILTER_VALIDATE_EMAIL for URLs
  • Using integer or boolean filters incorrectly
  • Missing the filter parameter
3.

What will be the output of the following PHP code?

$phone = '123-456-7890';
if (preg_match('/^\d{3}-\d{3}-\d{4}$/', $phone)) {
    echo 'Valid phone';
} else {
    echo 'Invalid phone';
}
medium
A. Syntax error
B. Invalid phone
C. No output
D. Valid phone

Solution

  1. Step 1: Analyze the regex pattern

    The pattern /^\d{3}-\d{3}-\d{4}$/ matches exactly 3 digits, a dash, 3 digits, a dash, then 4 digits.
  2. Step 2: Check the input string against the pattern

    The string '123-456-7890' matches this pattern exactly.
  3. Final Answer:

    Valid phone -> Option D
  4. Quick Check:

    Regex matches phone format = Valid phone [OK]
Hint: Match exact pattern with preg_match regex anchors ^ and $ [OK]
Common Mistakes:
  • Forgetting anchors ^ and $ in regex
  • Using wrong quantifiers in regex
  • Not escaping special characters
4.

Identify the error in this PHP code snippet for validating an integer:

$num = '123a';
if (filter_var($num, FILTER_VALIDATE_INT)) {
    echo 'Valid integer';
} else {
    echo 'Invalid integer';
}
medium
A. filter_var returns false for '123a', so output is 'Invalid integer'
B. filter_var should use FILTER_VALIDATE_NUMBER instead
C. The variable $num should be cast to int before validation
D. filter_var does not validate integers

Solution

  1. Step 1: Understand filter_var with FILTER_VALIDATE_INT

    This filter returns the integer value if valid, or false if invalid.
  2. Step 2: Check input '123a'

    The string '123a' is not a valid integer, so filter_var returns false.
  3. Final Answer:

    filter_var returns false for '123a', so output is 'Invalid integer' -> Option A
  4. Quick Check:

    Invalid integer string returns false = 'Invalid integer' output [OK]
Hint: filter_var returns false if input is not a pure integer string [OK]
Common Mistakes:
  • Using FILTER_VALIDATE_NUMBER which does not exist
  • Casting before validation causing wrong results
  • Assuming filter_var always returns boolean
5.

You want to validate a username in PHP that must start with a letter, can contain letters, numbers, underscores, and be 5 to 15 characters long. Which preg_match pattern correctly validates this?

hard
A. /^[a-zA-Z][a-zA-Z0-9_]{4,14}$/
B. /^[0-9][a-zA-Z0-9_]{4,14}$/
C. /^[a-zA-Z0-9_]{5,15}$/
D. /^[a-zA-Z]{5,15}$/

Solution

  1. Step 1: Understand username requirements

    Username must start with a letter, then 4 to 14 characters of letters, digits, or underscores, total length 5-15.
  2. Step 2: Analyze each pattern

    /^[a-zA-Z][a-zA-Z0-9_]{4,14}$/ matches a letter at start, then 4-14 allowed chars, total 5-15 length. Others fail start or length rules.
  3. Final Answer:

    /^[a-zA-Z][a-zA-Z0-9_]{4,14}$/ -> Option A
  4. Quick Check:

    Start letter + allowed chars + length 5-15 = /^[a-zA-Z][a-zA-Z0-9_]{4,14}$/ [OK]
Hint: Start with letter, then allowed chars with correct length in regex [OK]
Common Mistakes:
  • Allowing digits as first character
  • Not enforcing length limits
  • Missing anchors ^ and $
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard