Home>Article>Backend Development> [php classes and objects] Anonymous classes

[php classes and objects] Anonymous classes

不言
不言 Original
2018-04-13 11:19:02 1675browse

The content shared with you in this article is about [php classes and objects] anonymous classes. It has certain reference value. Friends in need can refer to it

Anonymous classes

PHP 7 Start supporting anonymous classes.

Function: Create a one-time simple object

You can pass parameters to the constructor of an anonymous class, you can also extend other classes, implement interfaces, and other common The same traits are used for classes:

num = $num; } use SomeTrait; });/* outputs: object(class@anonymous)#1 (1) { ["Command line code0x104c5b612":"class@anonymous":private]=> int(10) } */

After an anonymous class is nested into a normal Class, it cannot access the private (private), protected (protected) methods or properties of the outer class (Outer class).
In order to access the protected properties or methods of the outer class (Outer class), the anonymous class can extend this outer class.
In order to use the private attribute of the outer class (Outer class), it must be passed in through the constructor:

prop) extends Outer { private $prop3; public function __construct($prop) { $this->prop3 = $prop; } public function func3() { return $this->prop2 + $this->prop3 + $this->func1(); } }; } }echo (new Outer)->func2()->func3(); //6

The same anonymous class declared, the objects created are all instances of this class.

The name of the anonymous class is given by the engine, as shown in the following example. Due to implementation details, this class name should not be relied upon.


      

Related recommendations:

[php classes and objects] overloading


The above is the detailed content of [php classes and objects] Anonymous classes. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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
Previous article:php daemon Next article:php daemon