<?php
class A {
private $consumer;
public function getConsumer()
{
var_dump(__METHOD__);
return $this->consumer;
}
public function setConsumer($val)
{
$this->consumer = $val;
}
}
class B extends A {
protected $consumer;
public function __construct($val)
{
$this->consumer = $val;
}
public function test()
{
var_dump(__METHOD__);
return $this->consumer;
}
}
var_dump("Construct B with 'B'");
$b = new B("B");
var_dump($b->test());
var_dump($b->getConsumer());
var_dump("B::setConsumer('A')");
$b->setConsumer("A");
var_dump($b->getConsumer());
var_dump($b->test());
string(20) "Construct B with 'B'"
string(7) "B::test"
string(1) "B"
string(14) "A::getConsumer"
NULL
string(19) "B::setConsumer('A')"
string(14) "A::getConsumer"
string(1) "A"
string(7) "B::test"
string(1) "B"
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/sdGck on line 4
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/sdGck on line 4
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/sdGck on line 4
Process exited with code 255.