mirror of
https://github.com/php/php-src.git
synced 2024-11-28 20:34:29 +08:00
- Add new tests
This commit is contained in:
parent
a898c2dd28
commit
13f3e07ff2
58
tests/classes/array_access_008.phpt
Executable file
58
tests/classes/array_access_008.phpt
Executable file
@ -0,0 +1,58 @@
|
||||
--TEST--
|
||||
ZE2 ArrayAccess and ASSIGN_OP operators (.=)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Peoples implements ArrayAccess {
|
||||
public $person;
|
||||
|
||||
function __construct() {
|
||||
$this->person = array(array('name'=>'Foo'));
|
||||
}
|
||||
|
||||
function offsetExists($index) {
|
||||
return array_key_exists($this->person, $index);
|
||||
}
|
||||
|
||||
function & offsetGet($index) {
|
||||
return $this->person[$index];
|
||||
}
|
||||
|
||||
function offsetSet($index, $value) {
|
||||
$this->person[$index] = $value;
|
||||
}
|
||||
|
||||
function offsetUnset($index) {
|
||||
unset($this->person[$index]);
|
||||
}
|
||||
}
|
||||
|
||||
$people = new Peoples;
|
||||
|
||||
var_dump($people->person[0]['name']);
|
||||
$people->person[0]['name'] = $people->person[0]['name'] . 'Bar';
|
||||
var_dump($people->person[0]['name']);
|
||||
$people->person[0]['name'] .= 'Baz';
|
||||
var_dump($people->person[0]['name']);
|
||||
|
||||
echo "===ArrayOverloading===\n";
|
||||
|
||||
$people = new Peoples;
|
||||
|
||||
var_dump($people[0]['name']);
|
||||
$people[0]['name'] = $people->person[0]['name'] . 'Bar';
|
||||
var_dump($people[0]['name']);
|
||||
$people[0]['name'] .= 'Baz';
|
||||
var_dump($people[0]['name']);
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
string(3) "Foo"
|
||||
string(6) "FooBar"
|
||||
string(9) "FooBarBaz"
|
||||
===ArrayOverloading===
|
||||
string(3) "Foo"
|
||||
string(6) "FooBar"
|
||||
string(9) "FooBarBaz"
|
||||
===DONE===
|
60
tests/classes/destructor_and_exceptions.phpt
Executable file
60
tests/classes/destructor_and_exceptions.phpt
Executable file
@ -0,0 +1,60 @@
|
||||
--TEST--
|
||||
ZE2 catch exception thrown in destructor
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class FailClass
|
||||
{
|
||||
public $fatal;
|
||||
|
||||
function __destruct()
|
||||
{
|
||||
echo __METHOD__ . "\n";
|
||||
throw new exception("FailClass");
|
||||
echo "Done: " . __METHOD__ . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$a = new FailClass;
|
||||
unset($a);
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
echo "Caught: " . $e->getMessage() . "\n";
|
||||
}
|
||||
|
||||
class FatalException extends Exception
|
||||
{
|
||||
function __construct($what)
|
||||
{
|
||||
echo __METHOD__ . "\n";
|
||||
$o = new FailClass;
|
||||
unset($o);
|
||||
echo "Done: " . __METHOD__ . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
throw new FatalException("Damn");
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
echo "Caught Exception: " . $e->getMessage() . "\n";
|
||||
}
|
||||
catch(FatalException $e)
|
||||
{
|
||||
echo "Caught FatalException: " . $e->getMessage() . "\n";
|
||||
}
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
FailClass::__destruct
|
||||
Caught: FailClass
|
||||
FatalException::__construct
|
||||
FailClass::__destruct
|
||||
Caught Exception: FailClass
|
||||
===DONE===
|
Loading…
Reference in New Issue
Block a user