<?php
class Lock
{
private $isLocked = false;
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
{
private $lock;
private $connectsTo;
public function __construct(Lock $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();
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/leTN6 on line 3
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/leTN6 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/leTN6 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/leTN6 on line 5
Process exited with code 255.