This article describes how to dynamically create attributes and methods in PHP, copy objects, compare objects, load specified files, automatically load class files, and namespaces, for more information about how to dynamically create attributes and methods in PHP, copy objects, compare objects, load specified files, and automatically load class files, for more information about namespaces, see
PHP preface:
• Dynamically create attributes and Methods
• Object Replication
• Object comparison
• Load the specified file
• Automatically load class files
• Namespace
Example
1. Knowledge about classes 3 (dynamically create attributes and methods)
Class/class3.php
";} // _ Get magic method. When the obtained property does not exist or is not accessible (private), the public function _ get ($ name) is called) {echo "_ get \ $ name: {$ name}"; echo"
"; Return 999 ;}$ objClass1 = new Class1 (); // when the property you set does not exist or is not accessible (private, the corresponding _ set magic method $ objClass1-> property1 = wanglei; // inaccessible, such as private, or nonexistent // when the obtained property does not exist or is not accessible (private), the corresponding _ get magic method echo $ objClass1-> property2; echo "will be called"
"; // Used to demonstrate how to dynamically create a method (this is the so-called overload in php) class Class2 {// _ call magic method, when the called instance method does not exist or is not accessible (private), the public function _ call ($ name, $ arguments) {echo "_ call \ $ name: {$ name}, \ $ arguments :". implode (',', $ arguments); echo"
";} // _ CallStatic magic method. When the called class method does not exist or is not accessible (private), the public static function _ callStatic ($ name, $ arguments) {echo "_ callStatic \ $ name: {$ name}, \ $ arguments :". implode (',', $ arguments); echo"
";}}$ ObjClass2 = new Class2 (); // when the instance method you call does not exist or is not accessible (private, the corresponding _ call magic method echo $ objClass2-> method1 ("aaa", "bbb") is called "); // when the class method you call does not exist or is not accessible (private), the corresponding _ callStatic magic method echo Class2: method2 ("aaa ", "bbb ");
2. knowledge points of Classes 4 (copying objects and comparing objects)
Class/class4.php
";}}$ ObjClass1 = new Class1 (); // by cloning an object, the _ clone magic method $ objClass2 = clone $ objClass1 is called; // The object copied by clone is shallow copy, that is, one-to-one value assignment between member data, all the reference attributes will still be a reference to the original variable (if you want to do deep copy, you need to write it yourself) echo $ objClass2-> field1; // output: field1echo"
"; Echo $ objClass2-> field2; // output: field2echo"
"; // If the attributes and attribute values of the two objects are equal, they are equal to" = ", if ($ objClass1 = $ objClass2) {echo '$ objClass1 = $ objClass2'; echo"
";}// If the attributes and attribute values of the two objects are equal, but not instances of the same class, they" ===" are not equal if ($ objClass1! ==$ ObjClass2) {echo '$ objClass1! = $ ObjClass2 '; echo"
";}// If the two objects are instances of the same class, they are equal to" if ($ objClass1 ===$ objClass1) {echo '$ objClass1 ===$ objClass1'; echo"
";}// If the two objects are instances of the same class, they are" === "equal $ objClass3 = & $ objClass1; if ($ objClass1 ==$ objClass3) {echo '$ objClass1 ===$ objclass3'; echo"
";}
3. Knowledge about classes 5 (loading specified files and automatically loading class files)
Class/class5.php
Name; echo"
"; Class/MyClass. class. php
4. knowledge points of Classes 6 (namespace)
Class/class6.php
";}Class MyClass {public function myMethod () {echo" MyNamespace1 MyClass myMethod "; echo"
";}}// When defining a namespace, you can specify the path namespace Sub1 \ Sub2 \ MyNamespace2 {const MyConst =" MyNamespace2 MyConst "; function myFunction () {echo "MyNamespace2 myFunction"; echo"
";}Class MyClass {public function myMethod () {echo" MyNamespace2 MyClass myMethod "; echo"
";}} Namespace MyNamespace3 {// call the specified constant echo \ MyNamespace1 \ MyConst; echo in the specified namespace"
"; // Call the specified function \ MyNamespace1 \ myFunction () in the specified namespace; // instantiate the class $ obj1 = new \ MyNamespace1 \ MyClass () in the specified namespace (); $ obj1-> myMethod ();} namespace MyNamespace4 {// use the specified namespace use \ Sub1 \ Sub2 \ MyNamespace2; // you do not need to write the full namespace path, because I used echo MyNamespace2 \ MyConst; echo"
"; MyNamespace2 \ myFunction (); $ obj1 = new MyNamespace2 \ MyClass (); $ obj1-> myMethod ();} namespace MyNamespace5 {// use the specified namespace, and set its alias use \ Sub1 \ Sub2 \ MyNamespace2 as xxx; // when calling the namespace, you can use its alias echo xxx \ MyConst; echo"
"; Xxx \ myFunction (); $ obj1 = new xxx \ MyClass (); $ obj1-> myMethod ();}
The above section describes how to use PHP to dynamically create attributes and methods, copy objects, compare objects, load specified files, automatically load class files, and namespaces, hope to help you!