Your IP : 216.73.216.240
<?php
/*
* @package Tech Fry Library
* @license https://www.gnu.org/licenses/gpl-3.0.en.html
*/
namespace TechFry\Library;
defined('_JEXEC') or die;
class TNumeric
{
public $number; // Number or array of numbers
public function __construct($number = '')
{
$this->number = $number;
}
public function set_number($number)
{
$this->number = $number;
}
public function process($function, $param = null)
{
switch ($function)
{
// One argument - number
case 'abs' :
case 'base_convert' :
case 'bindec' :
case 'ceil' :
case 'decbin' :
case 'dechex' :
case 'decoct' :
case 'deg2rad' :
case 'exp' :
case 'floor' :
case 'hexdec' :
case 'log' :
case 'log10' :
case 'octdec' :
case 'rad2deg' :
case 'round' :
case 'sqrt' :
$result = $this->one($function);
break;
// Two arguments - number, 1 parameter
case 'fmod' :
case 'intdiv' :
case 'pow' :
case 'rand' :
case 'mt_rand' :
case 'number_format' :
$result = $this->two($function, $param);
break;
// Array as argument
case 'max' :
case 'min' :
case 'array_sum' :
case 'array_product' :
case 'count' :
$result = $function($this->number);
break;
// Arithmetic custom methods - 2 numbers
case 'sum' :
case 'add' :
case 'subtract' :
case 'multiply' :
case 'divide' :
case 'mod' :
case 'exp' :
$result = $this->arithmetic($function, $param);
}
return $result;
}
public function one($function)
{
if (\is_array($this->number))
{
foreach ($this->number as $k => $num)
{
$this->number[$k] = $function($num);
}
}
else
{
$this->number = $function($this->number);
}
return $this->number;
}
public function two($function, $param)
{
if (\is_array($this->number))
{
foreach ($this->number as $k => $num)
{
$this->number[$k] = $function($num, $param);
}
}
else
{
$this->number = $function($this->number, $param);
}
return $this->number;
}
public function arithmetic($function, $param = '')
{
if (\is_array($this->number))
{
$num1 = $this->number[0];
$num2 = $this->number[1];
}
else
{
$num1 = $this->number;
$num2 = $param;
}
switch ($function)
{
case 'add' :
case 'sum' :
$result = $num1 + $num2;
break;
case 'multiply' :
$result = $num1 * $num2;
break;
case 'subtract' :
$result = $num1 - $num2;
break;
case 'divide' :
$result = $num1 / $num2;
break;
case 'mod' :
$result = $num1 % $num2;
break;
case 'exp' :
$result = $num1 ** $num2;
break;
}
return $result;
}
}