JSON and Data Shapes
Encode Object
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
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";
$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
$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
$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