mirror of
https://github.com/php/php-src.git
synced 2024-12-19 15:00:15 +08: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
56 lines
1.0 KiB
PHP
56 lines
1.0 KiB
PHP
--TEST--
|
|
Handling of public fields with traits needs to have same semantics as with normal inheritance, however, we do add strict warnings since it is easier to run into something unexpeted with changing traits.
|
|
--FILE--
|
|
<?php
|
|
|
|
class BaseWithPropA {
|
|
public $hello = 0;
|
|
}
|
|
|
|
// This is how publics are handled in normal inheritance
|
|
class SubclassClassicInheritance extends BaseWithPropA {
|
|
public $hello = 0;
|
|
}
|
|
|
|
// And here, we need to make sure, that the traits behave the same
|
|
|
|
trait AHelloProperty {
|
|
public $hello = 0;
|
|
}
|
|
|
|
class BaseWithTPropB {
|
|
use AHelloProperty;
|
|
}
|
|
|
|
class SubclassA extends BaseWithPropA {
|
|
use AHelloProperty;
|
|
}
|
|
|
|
class SubclassB extends BaseWithTPropB {
|
|
use AHelloProperty;
|
|
}
|
|
|
|
$classic = new SubclassClassicInheritance;
|
|
var_dump($classic);
|
|
|
|
$a = new SubclassA;
|
|
var_dump($a);
|
|
|
|
$b = new SubclassB;
|
|
var_dump($b);
|
|
|
|
?>
|
|
--EXPECT--
|
|
object(SubclassClassicInheritance)#1 (1) {
|
|
["hello"]=>
|
|
int(0)
|
|
}
|
|
object(SubclassA)#2 (1) {
|
|
["hello"]=>
|
|
int(0)
|
|
}
|
|
object(SubclassB)#3 (1) {
|
|
["hello"]=>
|
|
int(0)
|
|
}
|