Visibility and Constructors
Public Property
A public property can be read and changed directly by code that has the object.
direct access
Public properties are simple, but every caller can change them.
Public Property
public_property.php
Replay: real traced execution (multi-file project)
<?php
class Badge
{
public string $name = "guest";
}
$name = "Ada";
$badge = new Badge();
$badge->name = $name;
$label = "badge:" . $badge->name;
echo "name=" . $badge->name . "\n";
echo "label=" . $label . "\n";
<?php
class Badge
{
public string $name = "guest";
}
$name = "Grace";
$badge = new Badge();
$badge->name = $name;
$label = "badge:" . $badge->name;
echo "name=" . $badge->name . "\n";
echo "label=" . $label . "\n";
<?php
class Badge
{
public string $name = "guest";
}
$name = "Rasmus";
$badge = new Badge();
$badge->name = $name;
$label = "badge:" . $badge->name;
echo "name=" . $badge->name . "\n";
echo "label=" . $label . "\n";
$name ← Ada, $badge ← Badge, $badge->name ← Ada, $label ← badge:Ada
7$name→ Ada = "Ada"; //@name="Grace", "Rasmus"8$badge→ Badge = new Badge();9$badge->name→ Ada = $nameAda;10$label→ badge:Ada = "badge:" . $badge->nameAda;1112echo "name=" . $badge->nameAda . "\n";13echo "label=" . $labelbadge:Ada . "\n";outputname=Ada label=badge:Ada
$name ← Grace, $badge ← Badge, $badge->name ← Grace, $label ← badge:Grace
7$name→ Grace = "Grace";8$badge→ Badge = new Badge();9$badge->name→ Grace = $nameGrace;10$label→ badge:Grace = "badge:" . $badge->nameGrace;1112echo "name=" . $badge->nameGrace . "\n";13echo "label=" . $labelbadge:Grace . "\n";outputname=Grace label=badge:Grace
$name ← Rasmus, $badge ← Badge, $badge->name ← Rasmus, $label ← badge:Rasmus
7$name→ Rasmus = "Rasmus";8$badge→ Badge = new Badge();9$badge->name→ Rasmus = $nameRasmus;10$label→ badge:Rasmus = "badge:" . $badge->nameRasmus;1112echo "name=" . $badge->nameRasmus . "\n";13echo "label=" . $labelbadge:Rasmus . "\n";outputname=Rasmus label=badge:Rasmus