Submit
Path:
~
/
/
proc
/
self
/
root
/
opt
/
psa
/
admin
/
plib
/
modules
/
monitoring
/
vendor
/
nxp
/
math-executor
/
src
/
NXP
/
Classes
/
File Content:
CustomFunction.php
<?php namespace PleskMonitoring\NXP\Classes; use PleskMonitoring\NXP\Exception\IncorrectNumberOfFunctionParametersException; use ReflectionException; use ReflectionFunction; class CustomFunction { /** * @var callable $function */ public $function; private bool $isVariadic; private int $totalParamCount; private int $requiredParamCount; /** * CustomFunction constructor. * * @throws ReflectionException */ public function __construct(public string $name, callable $function) { $this->function = $function; $reflection = new ReflectionFunction($function); $this->isVariadic = $reflection->isVariadic(); $this->totalParamCount = $reflection->getNumberOfParameters(); $this->requiredParamCount = $reflection->getNumberOfRequiredParameters(); } /** * @param array<Token> $stack * * @throws IncorrectNumberOfFunctionParametersException */ public function execute(array &$stack, int $paramCountInStack) : Token { if ($paramCountInStack < $this->requiredParamCount) { throw new IncorrectNumberOfFunctionParametersException($this->name); } if ($paramCountInStack > $this->totalParamCount && !$this->isVariadic) { throw new IncorrectNumberOfFunctionParametersException($this->name); } $args = []; if ($paramCountInStack > 0) { for ($i = 0; $i < $paramCountInStack; $i++) { \array_unshift($args, \array_pop($stack)->value); } } $result = \call_user_func_array($this->function, $args); return new Token(Token::Literal, $result); } }
Edit
Rename
Chmod
Delete
FILE
FOLDER
INFO
Name
Size
Permission
Action
Calculator.php
2971 bytes
0644
CustomFunction.php
1702 bytes
0644
Operator.php
1122 bytes
0644
Token.php
670 bytes
0644
Tokenizer.php
13693 bytes
0644
N4ST4R_ID | Naxtarrr