Способы создания объектов в PHP

  1. С помощью директивы new:
    <?php
    
    class Test {}
    
    $obj = new Test;
    var_dump( $obj ); // object(Test)#1 (0) { }
    
    ?>
  2. С помощью статического метода и ключевого слова self:
    <?php
    
    class Test {
    	static public function getNew() {
    		return new self;
    	}
    }
    
    $obj = Test::getNew();
    var_dump( $obj ); // object(Test)#1 (0) { }
    
    ?>
  3. С помощью статического метода и ключевого слова static:
    <?php
    
    class Test {
    	static public function getNew() {
    		return new static;
    	}
    }
    
    $obj = Test::getNew();
    var_dump( $obj ); // object(Test)#1 (0) { }
    
    ?>
  4. С помощью указателя типа:
    <?php
    
    $obj = (object) 'Test';
    var_dump( $obj ); // object(stdClass)#1 (1) { ["scalar"]=> string(4) "Test" }
    
    $obj = (object) array(); // []
    var_dump( $obj ); // object(stdClass)#1 (0) { }
    
    ?>