assertEquals('AA', eval(' $class = new '.self::class.'(); return '.$this->expressionLanguage->compile('call(class.method, ["A"])', ['class']).'; ')); $this->assertEquals('AA', eval('return '.$this->expressionLanguage->compile(sprintf('call("%s::method", ["A"])', str_replace('\\', '\\\\', self::class))).';')); } public function testCallEvaluate(): void { // Static method using FQN $this->assertEquals('AA', $this->expressionLanguage->evaluate(sprintf('call("%s::staticMethod", ["A"])', str_replace('\\', '\\\\', self::class)))); // Static method using array callable $this->assertEquals('AA', $this->expressionLanguage->evaluate(sprintf('call(["%s", "staticMethod"], ["A"])', str_replace('\\', '\\\\', self::class)))); // Global function $this->assertEquals('AA', $this->expressionLanguage->evaluate('call("\implode", ["", ["A", "A"]])')); } }