Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
PHP Features
// Late Static Binding in PHP are great.
// However they are not supported in every version of PHP
// Use the code below in a new window to test support
// for Late Static Bindings inside closures.
abstract class Demo
protected $item;
protected $calledClass;
public function __construct($bean)
if( !empty($bean) ){
$this->item = $bean;
$this->calledClass = get_called_class();
// Some other code here
public function getCalledClass()
return $this->calledClass;
public static function parseArray($items)
return array_map(function($item){
return new static($item);
}, $items);
final class Proto extends Demo
$list = [1,2,3,4];
print_r( array_map(function($i){
if( $i instanceof \Demo || $i instanceof \Proto ){
return $i->getCalledClass();
return 'Is null';
}, Proto::parseArray($list) ) );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment