Strings store text, concatenate with ., and can be measured with strlen.

string length `strlen` returns the number of bytes in a simple ASCII string.

Strings

language
strings.php
Replay: real traced execution (multi-file project)
<?php
$language = "PHP";
$message = "Hello, " . $language;
$length = strlen($message);

echo $message . "\n";
echo "length=" . $length . "\n";
<?php
$language = "Python";
$message = "Hello, " . $language;
$length = strlen($message);

echo $message . "\n";
echo "length=" . $length . "\n";
<?php
$language = "Ruby";
$message = "Hello, " . $language;
$length = strlen($message);

echo $message . "\n";
echo "length=" . $length . "\n";
  1. $language ← PHP, $message ← Hello, PHP, $length ← 10

    1<?php2$language→ PHP = "PHP"; //@language="Python", "Ruby"3$message→ Hello, PHP = "Hello, " . $languagePHP;4$length→ 10 = strlen($messageHello, PHP);56echo $messageHello, PHP . "\n";7echo "length=" . $length10 . "\n";
    outputHello, PHP
    length=10
  1. $language ← Python, $message ← Hello, Python, $length ← 13

    1<?php2$language→ Python = "Python";3$message→ Hello, Python = "Hello, " . $languagePython;4$length→ 13 = strlen($messageHello, Python);56echo $messageHello, Python . "\n";7echo "length=" . $length13 . "\n";
    outputHello, Python
    length=13
  1. $language ← Ruby, $message ← Hello, Ruby, $length ← 11

    1<?php2$language→ Ruby = "Ruby";3$message→ Hello, Ruby = "Hello, " . $languageRuby;4$length→ 11 = strlen($messageHello, Ruby);56echo $messageHello, Ruby . "\n";7echo "length=" . $length11 . "\n";
    outputHello, Ruby
    length=11

Follow the String

  1. $language starts as PHP.
  2. $message becomes Hello, PHP.
  3. strlen($message) returns 10.
  4. The program prints Hello, PHP and length=10. | language | message | length | | --- | --- | --- | | PHP | Hello, PHP | 10 | | Python | Hello, Python | 13 | | Ruby | Hello, Ruby | 11 |

Exercise: strings.php

Reproduce Hello, PHP and length=10, then use the pinned languages Python and Ruby to predict each message length.