mirror of
https://github.com/php/php-src.git
synced 2025-01-03 17:33:32 +08:00
b746e69887
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
99 lines
1.9 KiB
PHP
99 lines
1.9 KiB
PHP
--TEST--
|
|
Test properties with array default values using class constants as keys and values.
|
|
--FILE--
|
|
<?php
|
|
class X
|
|
{
|
|
// Static and instance array using class constants
|
|
public static $sa_x = array(B::KEY => B::VALUE);
|
|
public $a_x = array(B::KEY => B::VALUE);
|
|
}
|
|
|
|
class B
|
|
{
|
|
const KEY = "key";
|
|
const VALUE = "value";
|
|
|
|
// Static and instance array using class constants with self
|
|
public static $sa_b = array(self::KEY => self::VALUE);
|
|
public $a_b = array(self::KEY => self::VALUE);
|
|
}
|
|
|
|
class C extends B
|
|
{
|
|
// Static and instance array using class constants with parent
|
|
public static $sa_c_parent = array(parent::KEY => parent::VALUE);
|
|
public $a_c_parent = array(parent::KEY => parent::VALUE);
|
|
|
|
// Static and instance array using class constants with self (constants should be inherited)
|
|
public static $sa_c_self = array(self::KEY => self::VALUE);
|
|
public $a_c_self = array(self::KEY => self::VALUE);
|
|
|
|
// Should also include inherited properties from B.
|
|
}
|
|
|
|
echo "\nStatic properties:\n";
|
|
var_dump(X::$sa_x, B::$sa_b, C::$sa_b, C::$sa_c_parent, C::$sa_c_self);
|
|
|
|
echo "\nInstance properties:\n";
|
|
$x = new x;
|
|
$b = new B;
|
|
$c = new C;
|
|
var_dump($x, $b, $c);
|
|
?>
|
|
--EXPECTF--
|
|
Static properties:
|
|
array(1) {
|
|
["key"]=>
|
|
string(5) "value"
|
|
}
|
|
array(1) {
|
|
["key"]=>
|
|
string(5) "value"
|
|
}
|
|
array(1) {
|
|
["key"]=>
|
|
string(5) "value"
|
|
}
|
|
array(1) {
|
|
["key"]=>
|
|
string(5) "value"
|
|
}
|
|
array(1) {
|
|
["key"]=>
|
|
string(5) "value"
|
|
}
|
|
|
|
Instance properties:
|
|
object(X)#%d (1) {
|
|
["a_x"]=>
|
|
array(1) {
|
|
["key"]=>
|
|
string(5) "value"
|
|
}
|
|
}
|
|
object(B)#%d (1) {
|
|
["a_b"]=>
|
|
array(1) {
|
|
["key"]=>
|
|
string(5) "value"
|
|
}
|
|
}
|
|
object(C)#%d (3) {
|
|
["a_c_parent"]=>
|
|
array(1) {
|
|
["key"]=>
|
|
string(5) "value"
|
|
}
|
|
["a_c_self"]=>
|
|
array(1) {
|
|
["key"]=>
|
|
string(5) "value"
|
|
}
|
|
["a_b"]=>
|
|
array(1) {
|
|
["key"]=>
|
|
string(5) "value"
|
|
}
|
|
}
|