Bird
Raised Fist0
PHPprogramming~20 mins

String comparison functions in PHP - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
String Comparison Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of strcmp with different cases
What is the output of this PHP code snippet?
PHP
<?php
$str1 = "Hello";
$str2 = "hello";
$result = strcmp($str1, $str2);
echo $result;
?>
A0
B1
C-32
DSyntaxError
Attempts:
2 left
💡 Hint
strcmp compares strings byte by byte and is case-sensitive.
❓ Predict Output
intermediate
2:00remaining
Output of strcasecmp with different cases
What will this PHP code output?
PHP
<?php
$str1 = "World";
$str2 = "world";
$result = strcasecmp($str1, $str2);
echo $result;
?>
A0
B-1
CWarning: Undefined function
D1
Attempts:
2 left
💡 Hint
strcasecmp compares strings ignoring case differences.
❓ Predict Output
advanced
2:00remaining
Behavior of strncmp with partial string comparison
What is the output of this PHP code?
PHP
<?php
$str1 = "apple";
$str2 = "apples";
$result = strncmp($str1, $str2, 5);
echo $result;
?>
A-1
B0
C1
DFatal error
Attempts:
2 left
💡 Hint
strncmp compares only the first n characters of two strings.
❓ Predict Output
advanced
2:00remaining
Output of substr_compare with offset and length
What does this PHP code output?
PHP
<?php
$str1 = "abcabc";
$str2 = "xyzabc";
$result = substr_compare($str1, $str2, 3, 3);
echo $result;
?>
AWarning: Wrong parameters
B0
C23
D-23
Attempts:
2 left
💡 Hint
substr_compare compares substrings starting at offset for given length.
🧠 Conceptual
expert
2:00remaining
Which function is best for case-insensitive string comparison with offset?
You want to compare two strings ignoring case, starting at a specific position and for a specific length. Which PHP function should you use?
Astrncasecmp
Bstrncmp
Csubstr_compare
Dstrcasecmp
Attempts:
2 left
💡 Hint
Look for a function that combines case-insensitive, length-limited, and offset-based comparison.

Practice

(1/5)
1. Which PHP function compares two strings in a case-sensitive way and returns 0 if they are exactly equal?
easy
A. strncmp
B. strcasecmp
C. strncasecmp
D. strcmp

Solution

  1. Step 1: Understand case sensitivity in string comparison

    strcmp compares two strings exactly, including case.
  2. Step 2: Identify function behavior

    strcmp returns 0 if strings are exactly equal, considering case.
  3. Final Answer:

    strcmp -> Option D
  4. Quick Check:

    Case-sensitive compare = strcmp [OK]
Hint: Case matters? Use strcmp or strncmp [OK]
Common Mistakes:
  • Confusing strcmp with strcasecmp (case-insensitive)
  • Using strncasecmp for full string compare
  • Thinking strcmp ignores case
2. Which of the following is the correct syntax to compare first 3 characters of two strings ignoring case in PHP?
easy
A. strncasecmp($str1, $str2, 3)
B. strncmp($str1, $str2, 3)
C. strcasecmp($str1, $str2, 3)
D. strcmp($str1, $str2, 3)

Solution

  1. Step 1: Identify function for case-insensitive partial compare

    strncasecmp compares first N characters ignoring case.
  2. Step 2: Check syntax correctness

    strncasecmp($str1, $str2, 3) correctly compares first 3 chars case-insensitively.
  3. Final Answer:

    strncasecmp($str1, $str2, 3) -> Option A
  4. Quick Check:

    Partial case-insensitive compare = strncasecmp [OK]
Hint: Partial + ignore case = strncasecmp [OK]
Common Mistakes:
  • Using strncmp which is case-sensitive
  • Passing length to strcasecmp (no length param)
  • Using strcmp with length parameter
3. What will be the output of the following PHP code?
$result = strcasecmp('Hello', 'hello');
echo $result;
medium
A. -1
B. 0
C. 1
D. Error

Solution

  1. Step 1: Understand strcasecmp behavior

    It compares strings ignoring case and returns 0 if equal.
  2. Step 2: Compare 'Hello' and 'hello'

    Ignoring case, both strings are equal, so result is 0.
  3. Final Answer:

    0 -> Option B
  4. Quick Check:

    strcasecmp('Hello', 'hello') = 0 [OK]
Hint: strcasecmp returns 0 if strings equal ignoring case [OK]
Common Mistakes:
  • Expecting 1 or -1 for equal strings
  • Confusing case-sensitive strcmp with strcasecmp
  • Thinking it throws error for case differences
4. Identify the error in this PHP code snippet:
if (strncmp('apple', 'Apple', 5) == 0) {
echo 'Match';
} else {
echo 'No match';
}
medium
A. No error, code works correctly
B. Use strcasecmp instead of strncmp for case-insensitive compare
C. Use strncasecmp instead of strncmp for case-insensitive compare
D. Change 5 to length of shorter string

Solution

  1. Step 1: Analyze strncmp behavior

    strncmp is case-sensitive, so 'apple' != 'Apple'.
  2. Step 2: Fix for case-insensitive compare

    Use strncasecmp to ignore case in first 5 chars.
  3. Final Answer:

    Use strncasecmp instead of strncmp for case-insensitive compare -> Option C
  4. Quick Check:

    Case-insensitive partial compare needs strncasecmp [OK]
Hint: strncmp is case-sensitive; use strncasecmp to ignore case [OK]
Common Mistakes:
  • Assuming strncmp ignores case
  • Using strcasecmp with length parameter
  • Changing length unnecessarily
5. You want to sort an array of strings alphabetically ignoring case in PHP. Which function is best to use as a comparison callback for usort?
hard
A. strcasecmp
B. strcmp
C. strncmp
D. strncasecmp

Solution

  1. Step 1: Understand sorting with case-insensitivity

    Sorting ignoring case requires a case-insensitive comparison function.
  2. Step 2: Choose correct function for full string compare ignoring case

    strcasecmp compares full strings ignoring case, ideal for sorting.
  3. Final Answer:

    strcasecmp -> Option A
  4. Quick Check:

    Case-insensitive full compare for sorting = strcasecmp [OK]
Hint: Sort ignoring case? Use strcasecmp as callback [OK]
Common Mistakes:
  • Using strcmp which is case-sensitive
  • Using strncmp or strncasecmp which compare partial strings
  • Passing no callback to usort
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