mirror of
https://github.com/php/php-src.git
synced 2026-03-30 20:22:36 +02:00
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
122 lines
4.0 KiB
PHP
122 lines
4.0 KiB
PHP
--TEST--
|
|
Testing Closure::fromCallable() functionality: Basic
|
|
--FILE--
|
|
<?php
|
|
|
|
include('closure_from_callable.inc');
|
|
|
|
echo 'Access public static function';
|
|
$fn = Closure::fromCallable(['Foo', 'publicStaticFunction']);
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'Access public static function with different case';
|
|
$fn = Closure::fromCallable(['fOo', 'publicStaticfUNCTION']);
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'Access public static function with colon scheme';
|
|
$fn = Closure::fromCallable('Foo::publicStaticFunction');
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'Access public instance method of object';
|
|
$fn = Closure::fromCallable([new Foo, 'publicInstanceFunc']);
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'Access public instance method of parent object through parent:: ';
|
|
$fn = Closure::fromCallable([new Foo, 'publicInstanceFunc']);
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'Function that exists';
|
|
$fn = Closure::fromCallable('bar');
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'Function that exists with different spelling';
|
|
$fn = Closure::fromCallable('BAR');
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'Closure is already a closure';
|
|
$fn = Closure::fromCallable($closure);
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'Class with public invokable';
|
|
$fn = Closure::fromCallable(new PublicInvokable);
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo "Instance return private method as callable";
|
|
$foo = new Foo;
|
|
$fn = $foo->closePrivateValid();
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo "Instance return private static method as callable";
|
|
$foo = new Foo;
|
|
$fn = $foo->closePrivateStatic();
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'Instance return protected static method as callable';
|
|
$subFoo = new SubFoo;
|
|
$fn = $subFoo->closeProtectedStaticMethod();
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'Subclass closure over parent class protected method';
|
|
$subFoo = new SubFoo;
|
|
$fn = $subFoo->closeProtectedValid();
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'Subclass closure over parent class static protected method';
|
|
$subFoo = new SubFoo;
|
|
$fn = $subFoo->closeProtectedStaticMethod();
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'Access public instance method of parent object through "parent::" ';
|
|
$subFoo = new SubFoo;
|
|
$fn = $subFoo->getParentPublicInstanceMethod();
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'Access public instance method of self object through "self::" ';
|
|
$foo = new Foo;
|
|
$fn = $foo->getSelfColonPublicInstanceMethod();
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'Access public instance method of parent object through "self::" to parent method';
|
|
$foo = new SubFoo;
|
|
$fn = $foo->getSelfColonParentPublicInstanceMethod();
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'Access proteced instance method of parent object through "self::" to parent method';
|
|
$foo = new SubFoo;
|
|
$fn = $foo->getSelfColonParentProtectedInstanceMethod();
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'MagicCall __call instance method ';
|
|
$fn = Closure::fromCallable([new MagicCall, 'nonExistentMethod']);
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
echo 'MagicCall __callStatic static method ';
|
|
$fn = Closure::fromCallable(['MagicCall', 'nonExistentMethod']);
|
|
echo $fn(" OK".PHP_EOL);
|
|
|
|
|
|
?>
|
|
===DONE===
|
|
--EXPECT--
|
|
Access public static function OK
|
|
Access public static function with different case OK
|
|
Access public static function with colon scheme OK
|
|
Access public instance method of object OK
|
|
Access public instance method of parent object through parent:: OK
|
|
Function that exists OK
|
|
Function that exists with different spelling OK
|
|
Closure is already a closure OK
|
|
Class with public invokable OK
|
|
Instance return private method as callable OK
|
|
Instance return private static method as callable OK
|
|
Instance return protected static method as callable OK
|
|
Subclass closure over parent class protected method OK
|
|
Subclass closure over parent class static protected method OK
|
|
Access public instance method of parent object through "parent::" OK
|
|
Access public instance method of self object through "self::" OK
|
|
Access public instance method of parent object through "self::" to parent method OK
|
|
Access proteced instance method of parent object through "self::" to parent method OK
|
|
MagicCall __call instance method __call,nonExistentMethod, OK
|
|
MagicCall __callStatic static method __callStatic,nonExistentMethod, OK
|
|
===DONE===
|