<?php
//Simple math class
class Staircase
{
function __construct($numberOfSteps) {
$this->numberOfSteps = $numberOfSteps;
}
//Returns a closure
function buildingNumberOfSteps()
{
//We can't directly use $this inside closure
$thisCopy = $this;
return function($storeysNumber) use ($thisCopy)
{
return $storeysNumber*$thisCopy->numberOfSteps;
};
}
function buildingNumberOfStepsIncludingBasement()
{
return function($storeysNumber)
{
return ($storeysNumber + 1)*$this->numberOfSteps;
};
}
}
$staircase = new Staircase(25);
$numberOfStepsToReachRoofTopFromGround = $staircase->buildingNumberOfSteps();
$numberOfStepsToReachRoofTopFromBasement = $staircase->buildingNumberOfStepsIncludingBasement();
echo "5.3 <= PHP < 5.4 only allows me to climb from the ground... the ".$numberOfStepsToReachRoofTopFromGround(5)." steps :( ... ";
echo "but with PHP >= 5.4 I can make my way from the basement to the top, climbing the ".$numberOfStepsToReachRoofTopFromBasement(5)." steps ! :D";
?>
Deprecated: Creation of dynamic property Staircase::$numberOfSteps is deprecated in /in/1WgpU on line 7
5.3 <= PHP < 5.4 only allows me to climb from the ground... the 125 steps :( ... but with PHP >= 5.4 I can make my way from the basement to the top, climbing the 150 steps ! :D
5.3 <= PHP < 5.4 only allows me to climb from the ground... the 125 steps :( ... but with PHP >= 5.4 I can make my way from the basement to the top, climbing the 150 steps ! :D
Output for 5.3.0 - 5.3.29
5.3 <= PHP < 5.4 only allows me to climb from the ground... the 125 steps :( ...
Fatal error: Using $this when not in object context in /in/1WgpU on line 24
Process exited with code 255.
Output for 5.2.3 - 5.2.17
Parse error: syntax error, unexpected T_FUNCTION in /in/1WgpU on line 14
Process exited with code 255.