substr copies part of a string by start position and length.

substring A substring is a smaller slice of text taken from a larger string.

Substring Extract

start
substring_extract.php
Replay: real traced execution (multi-file project)
<?php
$start = 0;
$text = "debug trace";
$piece = substr($text, $start, 5);
$pieceLength = strlen($piece);

echo "start=" . $start . "\n";
echo "piece=" . $piece . "\n";
echo "pieceLength=" . $pieceLength . "\n";
<?php
$start = 3;
$text = "debug trace";
$piece = substr($text, $start, 5);
$pieceLength = strlen($piece);

echo "start=" . $start . "\n";
echo "piece=" . $piece . "\n";
echo "pieceLength=" . $pieceLength . "\n";
<?php
$start = 6;
$text = "debug trace";
$piece = substr($text, $start, 5);
$pieceLength = strlen($piece);

echo "start=" . $start . "\n";
echo "piece=" . $piece . "\n";
echo "pieceLength=" . $pieceLength . "\n";
  1. $start ← 0, $text ← debug trace, $piece ← debug, $pieceLength ← 5

    1<?php2$start→ 0 = 0; //@start=3, 63$text→ debug trace = "debug trace";4$piece→ debug = substr($textdebug trace, $start0, 5);5$pieceLength→ 5 = strlen($piecedebug);67echo "start=" . $start0 . "\n";8echo "piece=" . $piecedebug . "\n";9echo "pieceLength=" . $pieceLength5 . "\n";
    outputstart=0
    piece=debug
    pieceLength=5
  1. $start ← 3, $text ← debug trace, $piece ← ug tr, $pieceLength ← 5

    1<?php2$start→ 3 = 3;3$text→ debug trace = "debug trace";4$piece→ ug tr = substr($textdebug trace, $start3, 5);5$pieceLength→ 5 = strlen($pieceug tr);67echo "start=" . $start3 . "\n";8echo "piece=" . $pieceug tr . "\n";9echo "pieceLength=" . $pieceLength5 . "\n";
    outputstart=3
    piece=ug tr
    pieceLength=5
  1. $start ← 6, $text ← debug trace, $piece ← trace, $pieceLength ← 5

    1<?php2$start→ 6 = 6;3$text→ debug trace = "debug trace";4$piece→ trace = substr($textdebug trace, $start6, 5);5$pieceLength→ 5 = strlen($piecetrace);67echo "start=" . $start6 . "\n";8echo "piece=" . $piecetrace . "\n";9echo "pieceLength=" . $pieceLength5 . "\n";
    outputstart=6
    piece=trace
    pieceLength=5