<?php
abstract class A{
static protected $shared = array();
static function create(){
if (isset(static::$shared['mailer'])){
return static::$shared['mailer'];
}
$mailer = new static(); //this is the correct way
return static::$shared['mailer'] = $mailer;
}
}
class B extends A{
}
$obj=B::create();
$obj1=B::create();
var_dump($obj);
var_dump($obj1);
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
object(B)#1 (0) {
}
object(B)#1 (0) {
}