json_encode turns a PHP data shape into a JSON string.

encoded shape Build the data shape at the call site when the lesson only needs the JSON string.

Encode Object

name
encode_object.php
Replay: real traced execution (multi-file project)
<?php
$name = "Ada";
$json = json_encode(["name" => $name, "role" => "admin"]);
$length = strlen($json);

echo "name=" . $name . "\n";
echo "json=" . $json . "\n";
echo "length=" . $length . "\n";
<?php
$name = "Grace";
$json = json_encode(["name" => $name, "role" => "admin"]);
$length = strlen($json);

echo "name=" . $name . "\n";
echo "json=" . $json . "\n";
echo "length=" . $length . "\n";
<?php
$name = "Rasmus";
$json = json_encode(["name" => $name, "role" => "admin"]);
$length = strlen($json);

echo "name=" . $name . "\n";
echo "json=" . $json . "\n";
echo "length=" . $length . "\n";
  1. $name ← Ada, $json ← {"name":"Ada","role":"admin"}, $length ← 29

    1<?php2$name→ Ada = "Ada"; //@name="Grace", "Rasmus"3$json→ {"name":"Ada","role":"admin"} = json_encode(["name" => $nameAda, "role" => "admin"]);4$length→ 29 = strlen($json{"name":"Ada","role":"admin"});56echo "name=" . $nameAda . "\n";7echo "json=" . $json{"name":"Ada","role":"admin"} . "\n";8echo "length=" . $length29 . "\n";
    outputname=Ada
    json={"name":"Ada","role":"admin"}
    length=29
  1. $name ← Grace, $json ← {"name":"Grace","role":"admin"}, $length ← 31

    1<?php2$name→ Grace = "Grace";3$json→ {"name":"Grace","role":"admin"} = json_encode(["name" => $nameGrace, "role" => "admin"]);4$length→ 31 = strlen($json{"name":"Grace","role":"admin"});56echo "name=" . $nameGrace . "\n";7echo "json=" . $json{"name":"Grace","role":"admin"} . "\n";8echo "length=" . $length31 . "\n";
    outputname=Grace
    json={"name":"Grace","role":"admin"}
    length=31
  1. $name ← Rasmus, $json ← {"name":"Rasmus","role":"admin"}, $length ← 32

    1<?php2$name→ Rasmus = "Rasmus";3$json→ {"name":"Rasmus","role":"admin"} = json_encode(["name" => $nameRasmus, "role" => "admin"]);4$length→ 32 = strlen($json{"name":"Rasmus","role":"admin"});56echo "name=" . $nameRasmus . "\n";7echo "json=" . $json{"name":"Rasmus","role":"admin"} . "\n";8echo "length=" . $length32 . "\n";
    outputname=Rasmus
    json={"name":"Rasmus","role":"admin"}
    length=32