Bird
Raised Fist0
PHPprogramming~5 mins

String concatenation operator in PHP - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: String concatenation operator
O(n²)
Understanding Time Complexity

When we join strings together in PHP using the concatenation operator, it takes some time depending on the size of the strings.

We want to understand how the time to join strings grows as the strings get longer or as we join more strings.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


$string = "";
for ($i = 0; $i < $n; $i++) {
    $string .= "a";
}
    

This code builds a string by adding the letter "a" one by one, repeating $n times.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Adding one character to the string using concatenation inside a loop.
  • How many times: The concatenation happens once per loop, so $n times.
How Execution Grows With Input

Each time we add a character, PHP creates a new string by copying the old string and adding the new character.

Input Size (n)Approx. Operations
10About 55 (1+2+...+10)
100About 5,050
1000About 500,500

Pattern observation: The total work grows roughly like the square of n because each concatenation copies the whole string built so far.

Final Time Complexity

Time Complexity: O(n²)

This means the time to build the string grows roughly with the square of the number of characters added.

Common Mistake

[X] Wrong: "Concatenating strings in a loop is always fast and takes time proportional to n."

[OK] Correct: Each concatenation copies the entire string so far, making the total time grow much faster than just n.

Interview Connect

Understanding how string joining works helps you write efficient code and explain your choices clearly in real projects or interviews.

Self-Check

"What if we used an array to collect characters and joined them once at the end? How would the time complexity change?"

Practice

(1/5)
1. What does the dot (.) operator do in PHP?
easy
A. Joins two strings together
B. Adds two numbers
C. Compares two strings
D. Divides two numbers

Solution

  1. Step 1: Understand the dot operator usage

    In PHP, the dot operator is used to join or concatenate strings.
  2. Step 2: Differentiate from other operators

    It does not perform arithmetic or comparison; it only combines strings.
  3. Final Answer:

    Joins two strings together -> Option A
  4. Quick Check:

    Dot operator = string join [OK]
Hint: Dot (.) always joins strings in PHP [OK]
Common Mistakes:
  • Confusing dot with plus (+) for addition
  • Thinking dot compares strings
  • Using dot for division
2. Which of the following is the correct way to concatenate two strings $a and $b in PHP?
easy
A. $a + $b
B. $a . $b
C. $a & $b
D. $a * $b

Solution

  1. Step 1: Identify the concatenation operator

    PHP uses the dot (.) operator to join strings, so $a . $b is correct.
  2. Step 2: Check other operators

    Plus (+) adds numbers, ampersand (&) is bitwise AND, and asterisk (*) is multiplication.
  3. Final Answer:

    $a . $b -> Option B
  4. Quick Check:

    Dot (.) concatenates strings [OK]
Hint: Use dot (.) to join strings, not plus (+) [OK]
Common Mistakes:
  • Using + instead of . for strings
  • Using & or * operators mistakenly
  • Missing the dot operator
3. What is the output of the following PHP code?
$greeting = "Hello";
$name = "Alice";
echo $greeting . ", " . $name . "!";
medium
A. Hello,Alice!
B. Hello Alice!
C. Hello, Alice!
D. Hello . , . Alice . !

Solution

  1. Step 1: Analyze string concatenation

    The code joins "Hello", ", ", "Alice", and "!" using the dot operator.
  2. Step 2: Combine strings step-by-step

    "Hello" . ", " = "Hello, " and then "Hello, " . "Alice" = "Hello, Alice" and finally "Hello, Alice" . "!" = "Hello, Alice!"
  3. Final Answer:

    Hello, Alice! -> Option C
  4. Quick Check:

    Concatenate with dot = Hello, Alice! [OK]
Hint: Dot joins strings exactly as written [OK]
Common Mistakes:
  • Missing spaces inside strings
  • Expecting plus (+) to work
  • Confusing output with literal dots
4. Find the error in this PHP code:
$first = "Good";
$second = "Morning";
echo $first + " " + $second;
medium
A. Using double quotes incorrectly
B. Missing semicolon after echo
C. Variables not declared
D. Using + instead of . for string concatenation

Solution

  1. Step 1: Identify operator misuse

    The code uses + to join strings, but PHP requires the dot (.) operator for concatenation.
  2. Step 2: Confirm other syntax is correct

    Semicolons are present, variables declared, and quotes are correct.
  3. Final Answer:

    Using + instead of . for string concatenation -> Option D
  4. Quick Check:

    Use dot (.) not plus (+) for strings [OK]
Hint: Remember: + is for numbers, . is for strings [OK]
Common Mistakes:
  • Using + to join strings
  • Thinking + works like in JavaScript
  • Ignoring PHP string rules
5. You want to create a full name string from $firstName and $lastName with a space between them. Which code correctly does this in PHP?
hard
A. $fullName = $firstName . " " . $lastName;
B. $fullName = $firstName + " " + $lastName;
C. $fullName = $firstName . $lastName;
D. $fullName = '$firstName $lastName';

Solution

  1. Step 1: Understand string concatenation with space

    To join first and last names with a space, you must add " " explicitly between them using dot operators.
  2. Step 2: Evaluate each option

    A misses the space, B uses + which is invalid for strings, D uses single quotes so variables are not interpolated.
  3. Final Answer:

    $fullName = $firstName . " " . $lastName; -> Option A
  4. Quick Check:

    Dot with space string joins names correctly [OK]
Hint: Add space as " " between strings with dot [OK]
Common Mistakes:
  • Forgetting space between names
  • Using + instead of .
  • Assuming variables parse inside single quotes
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