static function do_show() { pass::show(); }
--SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) { die('skip ZendEngine 2 needed'); } ?> --FILE-- <?php abstract class fail { abstract function show(); } class pass extends fail { function show() { echo "Call to function show()\n"; } } $t2 = new pass(); $t2->show(); $t = new fail(); $t->show(); echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Call to function show() Fatal error: Cannot instantiate abstract class fail in %s on line %d, position %d
<?php interface showable { static function show(); } class pass implements showable { static function show() { echo "Call to function show()\n"; } } pass::show(); eval(' class fail { abstract static function func(); } '); fail::show(); echo "Done\n"; // shouldn't be displayed
public static function show() { echo "Call fail::show()\n"; pass::show(); }
die('skip ZendEngine 2 needed'); } ?> --FILE-- <?php abstract class fail { abstract function show(); } class pass extends fail { function show() { echo "Call to function show()\n"; } function error() { parent::show(); } } $t = new pass(); $t->show(); $t->error(); echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Call to function show() Fatal error: Cannot call abstract method fail::show() in %s on line %d, position %d
static function not_ok() { pass::show(); }