How to create undefined class PHP object

醉折花枝作酒筹
Release: 2023-03-10 22:00:02
forward
1607 people have browsed it

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);
Copy after login

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);
Copy after login

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);
Copy after login

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
Copy after login

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!

Related labels:
source:segmentfault.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template