<?php
class Foo
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
class Bar
{
private $foo;
public function __construct(Foo $foo = null, $default = 'default')
{
$this->foo = $foo ?: new Foo($default);
}
public function getFooName()
{
return $this->foo->name;
}
}
$foo = new Foo('John');
$bar = new Bar($foo);
echo $bar->getFooName(), PHP_EOL; // John
$bar = new Bar();
echo $bar->getFooName(), PHP_EOL; // default
$bar = new Bar(null, 'something');
echo $bar->getFooName(), PHP_EOL; // something
Parse error: syntax error, unexpected ':' in /in/hnbVL on line 19
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected ':' in /in/hnbVL on line 19
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/hnbVL on line 5
Process exited with code 255.
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/hnbVL on line 5
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/hnbVL on line 5
Process exited with code 255.