str_replace builds a new string with matching text swapped out.

replacement String replacement does not modify the original literal; it returns a changed string.

String Replace

word
string_replace.php
Replay: real traced execution (multi-file project)
<?php
$word = "green";
$template = "red green red";
$changed = str_replace("green", $word, $template);
$same = $changed === $template ? "same" : "changed";

echo "word=" . $word . "\n";
echo "changed=" . $changed . "\n";
echo "same=" . $same . "\n";
<?php
$word = "blue";
$template = "red green red";
$changed = str_replace("green", $word, $template);
$same = $changed === $template ? "same" : "changed";

echo "word=" . $word . "\n";
echo "changed=" . $changed . "\n";
echo "same=" . $same . "\n";
<?php
$word = "gold";
$template = "red green red";
$changed = str_replace("green", $word, $template);
$same = $changed === $template ? "same" : "changed";

echo "word=" . $word . "\n";
echo "changed=" . $changed . "\n";
echo "same=" . $same . "\n";
  1. $word ← green, $template ← red green red, $changed ← red green red

    1<?php2$word→ green = "green"; //@word="blue", "gold"3$template→ red green red = "red green red";4$changed→ red green red = str_replace("green", $wordgreen, $templatered green red);5$same→ same = $changedred green red === $templatered green red ? "same" : "changed";67echo "word=" . $wordgreen . "\n";8echo "changed=" . $changedred green red . "\n";9echo "same=" . $samesame . "\n";
    outputword=green
    changed=red green red
    same=same
  1. $word ← blue, $template ← red green red, $changed ← red blue red

    1<?php2$word→ blue = "blue";3$template→ red green red = "red green red";4$changed→ red blue red = str_replace("green", $wordblue, $templatered green red);5$same→ changed = $changedred blue red === $templatered green red ? "same" : "changed";67echo "word=" . $wordblue . "\n";8echo "changed=" . $changedred blue red . "\n";9echo "same=" . $samechanged . "\n";
    outputword=blue
    changed=red blue red
    same=changed
  1. $word ← gold, $template ← red green red, $changed ← red gold red

    1<?php2$word→ gold = "gold";3$template→ red green red = "red green red";4$changed→ red gold red = str_replace("green", $wordgold, $templatered green red);5$same→ changed = $changedred gold red === $templatered green red ? "same" : "changed";67echo "word=" . $wordgold . "\n";8echo "changed=" . $changedred gold red . "\n";9echo "same=" . $samechanged . "\n";
    outputword=gold
    changed=red gold red
    same=changed