- version_compare: documentation ( source)
- print_r: documentation ( source)
- get_parent_class: documentation ( source)
<?php
class A
{
public function vargs()
{
$args = func_get_args();
print_r($args);
}
}
class B extends A
{
public function vargs()
{
$args = func_get_args();
// call_user_func_array(array('parent', 'vargs'), $args); 5.3 - 5.5
if (-1 === version_compare(PHP_VERSION, '5.1.2')) {
// 'parent' causes segfault in 5.0.0-5.0.3
call_user_func_array(array(get_parent_class($this), 'vargs'), $args);
} else {
// call_user_func_array(array($this, 'parent::vargs'), $args); // 5.1.2
}
}
}
$b = new B;
$b->vargs(1, 2, 3);