* $foo = array( * 'integer' => 9, * 'string' => 'test string', * 'function' => Laminas\Json\Expr( * 'function () { window.alert("javascript function encoded by Laminas\Json\Json") }' * ), * ); * * echo Laminas\Json\Json::encode($foo, false, ['enableJsonExprFinder' => true]); * * * The above returns the following JSON (formatted for readability): * * * { * "integer": 9, * "string": "test string", * "function": function () {window.alert("javascript function encoded by Laminas\Json\Json")} * } * */ class Expr implements Stringable { /** * Storage for javascript expression. * * @var string */ protected $expression; /** * @param string $expression The expression to represent. */ public function __construct($expression) { $this->expression = (string) $expression; } /** * Cast to string * * @return string holded javascript expression. */ public function __toString(): string { return $this->expression; } }