PHP Classes

File: test/test.php

Recommend this page to a friend!
  Classes of Nikos M.   Xpresion PHP Parser Engine   test/test.php   Download  
File: test/test.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Xpresion PHP Parser Engine
Parse expressions that may contain variables
Author: By
Last change:
Date: 3 years ago
Size: 2,672 bytes
 

Contents

Class file image Download
<?php
require('../src/php/Xpresion.php');
function
echo_($s='')
{
    echo
$s . PHP_EOL;
}

function
test_expr($expr, $evaluate=false)
{
   
echo_('==========================================');
    try {
       
// uses defaultConfiguration by default
       
$xpr = Xpresion::_($expr);
    } catch (\
Exception $err ) {
       
$xpr = null;
       
echo_($err->getMessage());
    }
    if (
$xpr )
    {
       
$debug = $evaluate ? $xpr->debug(is_array($evaluate) ? $evaluate : array()) : $xpr->debug();
       
echo_($debug);
    }
}

echo_( 'Xpresion.VERSION ' . Xpresion::VERSION . "\n" );

test_expr('(123+456)', true);
test_expr('("123"+456)', true);
test_expr('("123"+"456")', true);
test_expr('len("123"+456)', true);
test_expr('len("123"+"456")', true);
test_expr('sum(1,2+3,4)', true);
test_expr('sum(1,(2+3),4)', true);
test_expr('array("string")',true);
test_expr('array(["ar","ra","y"])',true);
test_expr('str(2)',true);
test_expr('str("2")',true);
test_expr('int(2)',true);
test_expr('int("2")',true);
test_expr('hex2dec($this)');
test_expr('13');
test_expr('1.32');
test_expr('-0.12');
test_expr('-3');
test_expr('("1,2,3")+3',true);
test_expr('"1,2,3"+3',true);
test_expr('"1,2,3"+3+4',true);
test_expr('"1,2,3"+3+len("123")',true);
test_expr('"1,2,3"+3+sum(1,2,3)',true);
test_expr('sum(1,len("123"+456),2)',true);
test_expr('[1,2,3]+3',true);
test_expr('-3+2',true);
test_expr('1-3+2',true);
test_expr('1+-3',true);
test_expr('+1+3',true);
test_expr('2*-1');
test_expr('2*(-1)');
test_expr('2^-1');
test_expr('2^(-1)');
test_expr('2^-1^3');
test_expr('-2^-1^3');
test_expr('2^(-1)^3');
test_expr('sqrt(2)', true);
test_expr('$v');
test_expr('$v.key.0.key', array('v'=>(object)array('key'=>array((object)array('key'=>'correct'),'foo'))));
test_expr('True');
test_expr('"string"');
test_expr('["a","rra","y"]');
test_expr('`^regex?`i');
test_expr('0 == 1');
test_expr('TRUE == False');
test_expr('TRUE is False');
test_expr('1+2');
test_expr('1+2+3');
test_expr('1+2*3');
test_expr('1*2+3');
test_expr('1*2*3');
test_expr('1+2/3');
test_expr('1*2/3');
test_expr('1^2');
test_expr('1^2^3');
test_expr('1^(2^3)');
test_expr('(1^2)^3');
test_expr('((1^2))^3');
test_expr('`^regex?`i matches "string"');
test_expr('`^regex?`i matches "string" and `^regex?`i matches "string2"');
test_expr('$v in ["a","b","c"]');
test_expr('1 ? : (1+2) (3+4)');
test_expr('1 ? sum(1,2) : (3+4)');
test_expr('1 ? 1+2 : (3+4)');
test_expr('1 ? (2+3) : 2 ? (3+4) : (4+5)');
test_expr('date("Y-m-d H:i:s")', true);
test_expr('time()', true);
test_expr('date("Y-m-d H:i:s", time())');
test_expr('pow(1,pow(2,3))');
test_expr('pow(pow(2,3),4)');
test_expr('pow(pow(1,2),pow(2,3))');