mirror of
https://github.com/php/php-src.git
synced 2024-09-22 10:27:25 +00:00
d679f02295
This patch adds missing newlines, trims multiple redundant final newlines into a single one, and trims redundant leading newlines in all *.phpt sections. According to POSIX, a line is a sequence of zero or more non-' <newline>' characters plus a terminating '<newline>' character. [1] Files should normally have at least one final newline character. C89 [2] and later standards [3] mention a final newline: "A source file that is not empty shall end in a new-line character, which shall not be immediately preceded by a backslash character." Although it is not mandatory for all files to have a final newline fixed, a more consistent and homogeneous approach brings less of commit differences issues and a better development experience in certain text editors and IDEs. [1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206 [2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2 [3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
93 lines
2.7 KiB
PHP
93 lines
2.7 KiB
PHP
--TEST--
|
|
ReflectionClass::isIterateable()
|
|
--CREDITS--
|
|
Robin Fernandes <robinf@php.net>
|
|
Steve Seear <stevseea@php.net>
|
|
--FILE--
|
|
<?php
|
|
Interface ExtendsIterator extends Iterator {
|
|
}
|
|
Interface ExtendsIteratorAggregate extends IteratorAggregate {
|
|
}
|
|
Class IteratorImpl implements Iterator {
|
|
public function next() {}
|
|
public function key() {}
|
|
public function rewind() {}
|
|
public function current() {}
|
|
public function valid() {}
|
|
}
|
|
Class IterarorAggregateImpl implements IteratorAggregate {
|
|
public function getIterator() {}
|
|
}
|
|
Class ExtendsIteratorImpl extends IteratorImpl {
|
|
}
|
|
Class ExtendsIteratorAggregateImpl extends IterarorAggregateImpl {
|
|
}
|
|
Class A {
|
|
}
|
|
|
|
$classes = array('Traversable', 'Iterator', 'IteratorAggregate', 'ExtendsIterator', 'ExtendsIteratorAggregate',
|
|
'IteratorImpl', 'IterarorAggregateImpl', 'ExtendsIteratorImpl', 'ExtendsIteratorAggregateImpl', 'A');
|
|
|
|
foreach($classes as $class) {
|
|
$rc = new ReflectionClass($class);
|
|
echo "Is $class iterable? ";
|
|
var_dump($rc->isIterateable());
|
|
}
|
|
|
|
echo "\nTest invalid params:\n";
|
|
$rc = new ReflectionClass('IteratorImpl');
|
|
var_dump($rc->isIterateable(null));
|
|
var_dump($rc->isIterateable(null, null));
|
|
var_dump($rc->isIterateable(1));
|
|
var_dump($rc->isIterateable(1.5));
|
|
var_dump($rc->isIterateable(true));
|
|
var_dump($rc->isIterateable('X'));
|
|
var_dump($rc->isIterateable(null));
|
|
|
|
echo "\nTest static invocation:\n";
|
|
ReflectionClass::isIterateable();
|
|
|
|
?>
|
|
--EXPECTF--
|
|
Is Traversable iterable? bool(false)
|
|
Is Iterator iterable? bool(false)
|
|
Is IteratorAggregate iterable? bool(false)
|
|
Is ExtendsIterator iterable? bool(false)
|
|
Is ExtendsIteratorAggregate iterable? bool(false)
|
|
Is IteratorImpl iterable? bool(true)
|
|
Is IterarorAggregateImpl iterable? bool(true)
|
|
Is ExtendsIteratorImpl iterable? bool(true)
|
|
Is ExtendsIteratorAggregateImpl iterable? bool(true)
|
|
Is A iterable? bool(false)
|
|
|
|
Test invalid params:
|
|
|
|
Warning: ReflectionClass::isIterateable() expects exactly 0 parameters, 1 given in %s on line 34
|
|
NULL
|
|
|
|
Warning: ReflectionClass::isIterateable() expects exactly 0 parameters, 2 given in %s on line 35
|
|
NULL
|
|
|
|
Warning: ReflectionClass::isIterateable() expects exactly 0 parameters, 1 given in %s on line 36
|
|
NULL
|
|
|
|
Warning: ReflectionClass::isIterateable() expects exactly 0 parameters, 1 given in %s on line 37
|
|
NULL
|
|
|
|
Warning: ReflectionClass::isIterateable() expects exactly 0 parameters, 1 given in %s on line 38
|
|
NULL
|
|
|
|
Warning: ReflectionClass::isIterateable() expects exactly 0 parameters, 1 given in %s on line 39
|
|
NULL
|
|
|
|
Warning: ReflectionClass::isIterateable() expects exactly 0 parameters, 1 given in %s on line 40
|
|
NULL
|
|
|
|
Test static invocation:
|
|
|
|
Fatal error: Uncaught Error: Non-static method ReflectionClass::isIterateable() cannot be called statically in %s:43
|
|
Stack trace:
|
|
#0 {main}
|
|
thrown in %s on line 43
|