Visibility and Constructors
Constructor Defaults
A constructor can provide defaults so object creation stays convenient.
Constructor Defaults
constructor_defaults.php
<?php
class ShippingBox
{
public function __construct(private int $weight = 1)
{
}
public function cost(int $rate): int
{
return $this->weight * $rate;
}
}
$rate = ;
$defaultCost = (new ShippingBox())->cost($rate);
$heavyCost = (new ShippingBox(3))->cost($rate);
echo "rate=" . $rate . "\n";
echo "defaultCost=" . $defaultCost . "\n";
echo "heavyCost=" . $heavyCost . "\n";
<?php
class ShippingBox
{
public function __construct(private int $weight = 1)
{
}
public function cost(int $rate): int
{
return $this->weight * $rate;
}
}
$rate = ;
$defaultCost = (new ShippingBox())->cost($rate);
$heavyCost = (new ShippingBox(3))->cost($rate);
echo "rate=" . $rate . "\n";
echo "defaultCost=" . $defaultCost . "\n";
echo "heavyCost=" . $heavyCost . "\n";
<?php
class ShippingBox
{
public function __construct(private int $weight = 1)
{
}
public function cost(int $rate): int
{
return $this->weight * $rate;
}
}
$rate = ;
$defaultCost = (new ShippingBox())->cost($rate);
$heavyCost = (new ShippingBox(3))->cost($rate);
echo "rate=" . $rate . "\n";
echo "defaultCost=" . $defaultCost . "\n";
echo "heavyCost=" . $heavyCost . "\n";
optional constructor input
Default constructor values let a class support both explicit and ordinary setup.