<?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 "PHP >= 5.4 allows me to climb the ".$numberOfStepsToReachRoofTopFromBasement(5)." steps to reach my rooftop from the basement while ";
?>
Deprecated: Creation of dynamic property Staircase::$numberOfSteps is deprecated in /in/e2QRt on line 7
5.3 <= PHP < 5.4 only allows me to climb from the ground... the 125 steps :(PHP >= 5.4 allows me to climb the 150 steps to reach my rooftop from the basement while
5.3 <= PHP < 5.4 only allows me to climb from the ground... the 125 steps :(PHP >= 5.4 allows me to climb the 150 steps to reach my rooftop from the basement while
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/e2QRt on line 24
Process exited with code 255.