<?php
namespace Hostnet\Component\Php7;
/**
* Simple number
*/
class Number
{
private $value;
public function __construct($value)
{
$this->value = $value;
}
public function getValue()
{
return $this->value;
}
}
/**
* Simple calculator.
*/
class Calculator
{
/**
* Sum the two arguments.
*
* @param Number $left the left operant
* @param Number $right the right operant
* @return Number the answer, the answer is Number(0) when one of the two arguments is null
*/
public function sum(Number $left = null, Number $right = null)
{
try {
return new Number($left->getValue() + $right->getValue());
} catch (\Error $error) {
return new Number(0);
}
}
/**
* Divisions two arguments.
*
* @param Number $left the left operant
* @param Number $right the right operant
* @return Number the answer, the answer is Number(0) when a devision by zero is made.
*/
public function division(Number $left, Number $right)
{
return new Number($left->getValue() / $right->getValue());
}
}
$item = new Calculator();
$item->sum(null, null);
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Output for 5.6.8 - 5.6.28
Fatal error: Call to a member function getValue() on null in /in/8TQCH on line 39
Process exited with code 255.
Output for 5.5.24 - 5.5.35
Fatal error: Call to a member function getValue() on a non-object in /in/8TQCH on line 39
Process exited with code 255.