This article will introduce you to the usage of the php object-oriented _ toString () method. The _ toString () method is automatically called, it is automatically called when an object reference is directly output.
As we have mentioned earlier, the methods for declaring the method name "--" in the class (provided by PHP) are all automatically called for execution at different times, the "_ toString ()" method is also automatically called, which is automatically called when the object is directly referenced. We have mentioned that object reference is a pointer, for example: in "$ p = new Person ()", $ p is a reference. We cannot use echo to directly output $ p, which will output "Catchable fatal error: object of class Person cocould not be converted to string. If you define the "_ toString ()" method in the class, when you directly output the Object reference, instead of generating errors, the "_ toString ()" method is automatically called to output the characters returned in the "_ toString ()" method. Therefore, the "_ toString () the method must have a return value (return Statement ).
Code
The Code is as follows: |
Copy code |
<? Php // Declare a simple class Class TestClass { Public $ foo; Public function _ construct ($ foo ){ $ This-> foo = $ foo; } // Define a _ toString method and add a member attribute $ foo. Public function _ toString (){ Return $ this-> foo; } } $ Class = new TestClass ('hello '); // Directly output the object Echo $ class; ?> |
I have been familiar with the magic method _ set in php object-oriented programming. I once introduced what is magic method. This chapter introduces another magic method _ tostring ().
_ ToString () is a convenient way to quickly obtain the string information of an object. It seems that magic methods have an "automatic" feature, such as automatic acquisition and automatic printing, __tostring () this method is automatically called when the object reference is directly output.
_ ToString ()
When debugging a program, we need to know whether the data is correct. For example, when printing an object, you can check what attributes and values the object has. If the class defines the toString method, echo can print the object body during the test, the object automatically calls the toString method defined by the class to format and output the data contained in the object.
Next we will look at an instance of _ toString ().
The Code is as follows: |
Copy code |
<? Php 02 class Person { 03 private $ name = ""; 04 function _ construct ($ name = ""){ 05 06 $ this-> name = $ name; 07} 08 function say (){ 09 10 echo "Hello,". $ this-> name ."! <Br/> "; 11} 12 function _ tostring () {// define a _ toString method in the class 13 return "Hello,". $ this-> name ."! <Br/> "; 14} 15} 16 $ WBlog = new Person ('wblog '); 17 echo $ WBlog; // The _ toString () method in the object is automatically called when an object reference is directly output. 18 $ WBlog-> say (); // compare it with the preceding automatic call method. 19?> Program output:
Hello, WBlog! Hello, WBlog! |
What if the "_ tostring ()" method is not defined? For example, based on the code above, block the "_ tostring ()" method and look at the output result of the program:
Catchable fatal error: Object of class Person cocould not be converted to string
It can be seen that if the "_ tostring ()" method is not defined in the class, an error will occur when the reference to the image is directly output. In addition, _ tostring () the method body must have a return value.