<?php
class Lock
{
private $isLocked = false;
public function unlock()
{
$this->isLocked = false;
echo 'You unlocked the Lock'.PHP_EOL;
}
public function lock()
{
$this->isLocked = true;
echo 'You locked the Lock'.PHP_EOL;
}
public function isLocked()
{
return $this->isLocked;
}
}
class Door
{
private $lock;
private $connectsTo;
public function __construct(Lock $lock)
{
$this->lock = $lock;
$this->connectsTo = 'bedroom'.PHP_EOL;
}
public function open()
{
if($this->lock->isLocked()) {
echo 'Cannot open Door. It is locked.'.PHP_EOL;
} else {
echo 'You opened the Door connecting to: ', $this->connectsTo.PHP_EOL;
}
}
}
$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/Tn3Jr 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 5.0.0 - 5.0.1
Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/Tn3Jr on line 15
You locked the LockPHP_EOL
Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/Tn3Jr on line 31
Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/Tn3Jr on line 36
Cannot open Door. It is locked.PHP_EOL
Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/Tn3Jr on line 10
You unlocked the LockPHP_EOLYou opened the Door connecting to:
Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/Tn3Jr on line 38
bedroomPHP_EOLPHP_EOL
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/Tn3Jr 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/Tn3Jr 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/Tn3Jr on line 5
Process exited with code 255.