<?php
/**
* Cheaper solution to find out if a class is abstract, instead of using ReflectionObject
*/
abstract class AbstractExample
{
public function __construct() {}
}
class Example extends AbstractExample {}
$isAbstractCallable = is_callable(['AbstractExample', '__construct']);
var_dump($isAbstractCallable, $isCallable);
PD9waHAKCi8qKgogKiBDaGVhcGVyIHNvbHV0aW9uIHRvIGZpbmQgb3V0IGlmIGEgY2xhc3MgaXMgYWJzdHJhY3QsIGluc3RlYWQgb2YgdXNpbmcgUmVmbGVjdGlvbk9iamVjdAogKi8KCmFic3RyYWN0IGNsYXNzIEFic3RyYWN0RXhhbXBsZQp7CglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQp9CgoKY2xhc3MgRXhhbXBsZSBleHRlbmRzIEFic3RyYWN0RXhhbXBsZSB7fQoKJGlzQWJzdHJhY3RDYWxsYWJsZSA9IGlzX2NhbGxhYmxlKFsnQWJzdHJhY3RFeGFtcGxlJywgJ19fY29uc3RydWN0J10pOwokaXNDYWxsYWJsZSA9IGlzX2NhbGxhYmxlKFsnRXhhbXBsZScsICdfX2NvbnN0cnVjdCddKTsKCnZhcl9kdW1wKCRpc0Fic3RyYWN0Q2FsbGFibGUsICRpc0NhbGxhYmxlKTsK