xref: /PHP-7.1/tests/classes/private_003b.phpt (revision e97d5fab)
1--TEST--
2ZE2 A private method cannot be called in a derived class
3--SKIPIF--
4<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
5--FILE--
6<?php
7
8class pass {
9	private function show() {
10		echo "Call show()\n";
11	}
12
13	protected function good() {
14		$this->show();
15	}
16}
17
18class fail extends pass {
19	public function ok() {
20		$this->good();
21	}
22
23	public function not_ok() {
24		$this->show();
25	}
26}
27
28$t = new fail();
29$t->ok();
30$t->not_ok(); // calling a private function
31
32echo "Done\n"; // shouldn't be displayed
33?>
34--EXPECTF--
35Call show()
36
37Fatal error: Uncaught Error: Call to private method pass::show() from context 'fail' in %s:%d
38Stack trace:
39#0 %s(%d): fail->not_ok()
40#1 {main}
41  thrown in %s on line %d
42