Home  >  Article  >  Backend Development  >  How to create undefined class PHP object

How to create undefined class PHP object

醉折花枝作酒筹
醉折花枝作酒筹forward
2021-06-25 16:14:031610browse

In PHP, if the class is not prepared in advance and you need to create an object of undefined class, we can use the following three methods: 1. "new stdClass()", "new class{}(object)" and "(object)[]". The editor will introduce it in detail below.

How to create undefined class PHP object

In PHP, if the class is not prepared in advance and you need to create an object of undefined class, we can use the following three methods:

  • new stdClass()

  • ##new class{}

  • ##(object)[]
  • The first is stdClass. This class is an empty class template and is PHP's internal reserved keyword and class name. It can be thought of as the Object base class in Java. In Java, all classes naturally inherit from the Object base class. The stdClass in PHP is a completely empty class template. Your own newly created class is not a subclass of it. But you can use this class template to create an object of its own undefined class. Of course, there is nothing inside this object.
 $a = new stdClass();
var_dump($a);

new class{}? Those who have been developing for a period of time and have been exposed to front-end js and other dynamic languages ​​​​should be able to guess that this is an anonymous class. Generally very common in parameter objects. The objects it creates can have attribute methods.

 $b = new class{
    public $p = 1;
};
var_dump($b);

The last thing we see is using an array to be forced into an object to generate an object.

 $c = (object)[
    'p' => 1
];
var_dump($c);

Obviously, the object generated by array coercion is of the same type as the first object, and it can have attributes or not. However, it cannot take methods.

The objects generated by the array coercion method are very intuitive and easy to understand. If it is just the encapsulation of attribute objects, using this method will be more elegant and comfortable. Complex object generation can be generated using anonymous classes. For some objects that only need placeholders, you can use the stdClass method. Of course, using an empty array is also very convenient.

It should be noted that array coercion needs to comply with the rules of type conversion. For example, the problem of numerical subscripts.

In daily development, we often use these functions when using some interfaces or database ORM frameworks. For example, the insertion and modification of some ORM frameworks require the incoming of objects containing only attributes. At this time, you can use the above method to flexibly generate objects without completely defining the class template.

Test code:

https://github.com/zhangyue0503/dev-blog/blob/master/php/201910/source/%E4%BC%98%E9%9B%85%E5%9C%B0%E5%88%9B%E5%BB%BA%E6%9C%AA%E5%AE%9A%E4%B9%89PHP%E5%AF%B9%E8%B1%A1.php

Recommended learning:

php video tutorial

The above is the detailed content of How to create undefined class PHP object. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete