<?php
class Lock
{
public function unlock()
{
$this->isLocked = false;
echo 'You unlocked the Lock'."\n";
}
public function lock()
{
$this->isLocked = true;
echo 'You locked the Lock'."\n";
}
public function isLocked()
{
return $this->isLocked;
}
}
class Door
{
public function Door($lock)
{
$this->lock = $lock;
$this->connectsTo = 'bedroom'."\n";
}
public function open()
{
if ($this->lock->isLocked()) {
echo 'Cannot open Door. It is locked.'."\n";
} else {
echo 'You opened the Door connecting to: ', $this->connectsTo."\n";
}
}
}
$lock = new Lock;
$door = new Door($lock);
$door->open();
$lock->unlock();
$door->open();
Warning: Undefined property: Door::$lock in /in/pCp2p on line 30
Fatal error: Uncaught Error: Call to a member function isLocked() on null in /in/pCp2p:30
Stack trace:
#0 /in/pCp2p(41): Door->open()
#1 {main}
thrown in /in/pCp2p on line 30
Process exited with code 255.
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Lock has a deprecated constructor in /in/pCp2p on line 3
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Door has a deprecated constructor in /in/pCp2p on line 21
You locked the Lock
Cannot open Door. It is locked.
You unlocked the Lock
You opened the Door connecting to: bedroom
You locked the Lock
Cannot open Door. It is locked.
You unlocked the Lock
You opened the Door connecting to: bedroom
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/pCp2p 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/pCp2p 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/pCp2p on line 5
Process exited with code 255.