cvs: ZendEngine2(PHP_5_3) /tests 036.phpt 037.phpt 038.phpt closure_024.phpt closure_025.phpt closure_026.phpt closure_027.phpt closure_028.phpt closure_029.phpt closure_030.phpt list_007.phpt objects_031.phpt

"Felipe Pena" <[email protected]>
Newsgroups gmane.comp.php.cvs.zend
Message-ID <cvsfelipe1217254200@cvsserver>
felipe		Mon Jul 28 14:10:00 2008 UTC

  Added files:                 (Branch: PHP_5_3)
    /ZendEngine2/tests	036.phpt 037.phpt 038.phpt closure_024.phpt 
                      	closure_025.phpt closure_026.phpt 
                      	closure_027.phpt closure_028.phpt 
                      	closure_029.phpt closure_030.phpt list_007.phpt 
                      	objects_031.phpt 
  Log:
  - MFH: New tests
  
  

http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/036.phpt?view=markup&rev=1.1
Index: ZendEngine2/tests/036.phpt
+++ ZendEngine2/tests/036.phpt
--TEST--
Trying to use lambda in array offset
--FILE--
<?php

$test[function(){}] = 1;
$a{function() { }} = 1;

?>
--EXPECTF--
Warning: Illegal offset type in %s on line %d

Warning: Illegal offset type in %s on line %d

http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/037.phpt?view=markup&rev=1.1
Index: ZendEngine2/tests/037.phpt
+++ ZendEngine2/tests/037.phpt
--TEST--
Trying to access inexistent static property of Closure
--FILE--
<?php

namespace closure;

class closure { static $x = 1;}

$x = __NAMESPACE__;
var_dump(closure::$x);

var_dump($x::$x);

?>
--EXPECTF--
int(1)

Fatal error: Access to undeclared static property: Closure::$x in %s on line %d

http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/038.phpt?view=markup&rev=1.1
Index: ZendEngine2/tests/038.phpt
+++ ZendEngine2/tests/038.phpt
--TEST--
Trying to use lambda as array key
--FILE--
<?php

var_dump(array(function() { } => 1));

?>
--EXPECTF--
Warning: Illegal offset type in %s on line %d
array(0) {
}

http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/closure_024.phpt?view=markup&rev=1.1
Index: ZendEngine2/tests/closure_024.phpt
+++ ZendEngine2/tests/closure_024.phpt
--TEST--
Closure 024: Trying to clone the Closure object
--FILE--
<?php

$a = function () { 
	return clone function () {
		return 1;
	};
};

$a();

?>
--EXPECTF--
Fatal error: Trying to clone an uncloneable object of class Closure in %s on line %d

http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/closure_025.phpt?view=markup&rev=1.1
Index: ZendEngine2/tests/closure_025.phpt
+++ ZendEngine2/tests/closure_025.phpt
--TEST--
Closure 025: Using closure in create_function()
--FILE--
<?php

$a = create_function('$x', 'return function($y) use ($x) { return $x * $y; };');

var_dump($a(2)->__invoke(4));

?>
--EXPECT--
int(8)

http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/closure_026.phpt?view=markup&rev=1.1
Index: ZendEngine2/tests/closure_026.phpt
+++ ZendEngine2/tests/closure_026.phpt
--TEST--
Closure 026: Assigning a closure object to an array in $this
--FILE--
<?php

class foo {
	public function __construct() {
		$a =& $this;
		
		$a->a[] = function() {
			return 1;	
		};
		
		var_dump($this);
		
		var_dump($this->a[0]());
	}
}

$x = new foo;

print "--------------\n";

foreach ($x as $b => $c) {
	var_dump($b, $c);
	var_dump($c[0]());
}

?>
--EXPECTF--
object(foo)#%d (1) {
  [u"a"]=>
  array(1) {
    [0]=>
    object(Closure)#%d (0) {
    }
  }
}
int(1)
--------------
unicode(1) "a"
array(1) {
  [0]=>
  object(Closure)#%d (0) {
  }
}
int(1)

http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/closure_027.phpt?view=markup&rev=1.1
Index: ZendEngine2/tests/closure_027.phpt
+++ ZendEngine2/tests/closure_027.phpt
--TEST--
Closure 027: Testing Closure type-hint
--FILE--
<?php

function test(closure $a) {
	var_dump($a());
}


test(function() { return new stdclass; });

test(function() { });

$a = function($x) use ($y) {};
test($a);

test(new stdclass);

?>
--EXPECTF--
object(stdClass)#%d (0) {
}
NULL

Notice: Undefined variable: y in %s on line %d

Warning: Missing argument 1 for (), called in %s on line %d and defined in %s on line %d
NULL

Catchable fatal error: Argument 1 passed to test() must be an instance of Closure, instance of stdClass given, called in %s on line %d and defined in %s on line %d

http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/closure_028.phpt?view=markup&rev=1.1
Index: ZendEngine2/tests/closure_028.phpt
+++ ZendEngine2/tests/closure_028.phpt
--TEST--
Closure 028: Trying to use lambda directly in foreach
--FILE--
<?php

foreach (function(){ return 1; } as $y) { 
	var_dump($y);	
}

print "ok\n";

?>
--EXPECT--
ok

http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/closure_029.phpt?view=markup&rev=1.1
Index: ZendEngine2/tests/closure_029.phpt
+++ ZendEngine2/tests/closure_029.phpt
--TEST--
Closure 029: Testing lambda with instanceof operator
--FILE--
<?php

var_dump(function() { } instanceof closure);
var_dump(function(&$x) { } instanceof closure);
var_dump(@function(&$x) use ($y, $z) { } instanceof closure);

?>
--EXPECT--
bool(true)
bool(true)
bool(true)

http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/closure_030.phpt?view=markup&rev=1.1
Index: ZendEngine2/tests/closure_030.phpt
+++ ZendEngine2/tests/closure_030.phpt
--TEST--
Closure 030: Using lambda with variable variables
--FILE--
<?php

$b = function() { return func_get_args(); };
$a = 'b';
var_dump($$a(1));
var_dump($$a->__invoke(2));

?>
--EXPECT--
array(1) {
  [0]=>
  int(1)
}
array(1) {
  [0]=>
  int(2)
}

http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/list_007.phpt?view=markup&rev=1.1
Index: ZendEngine2/tests/list_007.phpt
+++ ZendEngine2/tests/list_007.phpt
--TEST--
Using lambda with list()
--FILE--
<?php

list($x, $y) = function() { };

var_dump($x, $y);

?>
--EXPECT--
NULL
NULL

http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/objects_031.phpt?view=markup&rev=1.1
Index: ZendEngine2/tests/objects_031.phpt
+++ ZendEngine2/tests/objects_031.phpt
--TEST--
Cloning stdClass
--FILE--
<?php

$x[] = clone new stdclass;
$x[] = clone new stdclass;
$x[] = clone new stdclass;

$x[0]->a = 1;

var_dump($x);

?>
--EXPECTF--
array(3) {
  [0]=>
  object(stdClass)#%d (1) {
    [u"a"]=>
    int(1)
  }
  [1]=>
  object(stdClass)#%d (0) {
  }
  [2]=>
  object(stdClass)#%d (0) {
  }
}



-- 
Zend Engine CVS Mailing List (http://cvs.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.