mirror of
https://github.com/php/php-src.git
synced 2025-08-20 09:24:05 +02:00
Check handling of private class members
This commit is contained in:
parent
5500287432
commit
47a881f01c
1 changed files with 103 additions and 0 deletions
103
tests/classes/private_members.phpt
Executable file
103
tests/classes/private_members.phpt
Executable file
|
@ -0,0 +1,103 @@
|
||||||
|
--TEST--
|
||||||
|
A private member is
|
||||||
|
--SKIPIF--
|
||||||
|
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
|
||||||
|
--FILE--
|
||||||
|
<?
|
||||||
|
|
||||||
|
class base
|
||||||
|
{
|
||||||
|
private $member;
|
||||||
|
|
||||||
|
function __construct()
|
||||||
|
{
|
||||||
|
echo __METHOD__ . "(begin)\n";
|
||||||
|
$this->member = 'base::member';
|
||||||
|
$this->test();
|
||||||
|
echo __METHOD__ . "(end)\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
function test()
|
||||||
|
{
|
||||||
|
echo __METHOD__ . "\n";
|
||||||
|
print_r($this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class derived extends base
|
||||||
|
{
|
||||||
|
public $member = 'derived::member (default)';
|
||||||
|
|
||||||
|
function __construct()
|
||||||
|
{
|
||||||
|
echo __METHOD__ . "(begin)\n";
|
||||||
|
parent::__construct();
|
||||||
|
parent::test();
|
||||||
|
$this->test();
|
||||||
|
$this->member = 'derived::member';
|
||||||
|
echo __METHOD__ . "(end)\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
function test()
|
||||||
|
{
|
||||||
|
parent::test();
|
||||||
|
echo __METHOD__ . "\n";
|
||||||
|
print_r($this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$t = new derived;
|
||||||
|
$t->test();
|
||||||
|
unset($t);
|
||||||
|
|
||||||
|
echo "Done\n";
|
||||||
|
|
||||||
|
?>
|
||||||
|
--EXPECTF--
|
||||||
|
derived::__construct(begin)
|
||||||
|
base::__construct(begin)
|
||||||
|
base::test
|
||||||
|
derived Object
|
||||||
|
(
|
||||||
|
[member] => derived::member (default)
|
||||||
|
[member:private] => base::member
|
||||||
|
)
|
||||||
|
derived::test
|
||||||
|
derived Object
|
||||||
|
(
|
||||||
|
[member] => derived::member (default)
|
||||||
|
[member:private] => base::member
|
||||||
|
)
|
||||||
|
base::__construct(end)
|
||||||
|
base::test
|
||||||
|
derived Object
|
||||||
|
(
|
||||||
|
[member] => derived::member (default)
|
||||||
|
[member:private] => base::member
|
||||||
|
)
|
||||||
|
base::test
|
||||||
|
derived Object
|
||||||
|
(
|
||||||
|
[member] => derived::member (default)
|
||||||
|
[member:private] => base::member
|
||||||
|
)
|
||||||
|
derived::test
|
||||||
|
derived Object
|
||||||
|
(
|
||||||
|
[member] => derived::member (default)
|
||||||
|
[member:private] => base::member
|
||||||
|
)
|
||||||
|
derived::__construct(end)
|
||||||
|
base::test
|
||||||
|
derived Object
|
||||||
|
(
|
||||||
|
[member] => derived::member
|
||||||
|
[member:private] => base::member
|
||||||
|
)
|
||||||
|
derived::test
|
||||||
|
derived Object
|
||||||
|
(
|
||||||
|
[member] => derived::member
|
||||||
|
[member:private] => base::member
|
||||||
|
)
|
||||||
|
Done
|
Loading…
Add table
Add a link
Reference in a new issue