Standardizing object rendering as a string
Video: Standardizing object rendering as a stringInstead of just asking an object to display itself, it's more convenient to assume that when echoed, an object knows to treat itself like a string. At a high level, this concept is known as polymorphism, where I can act on an object without knowing exactly what the class is. In practice, this means more common function names between classes. I am going to cover polymorphism in greater depth in a later segment. For now, let's focus on making an address display as a string by echoing. To do this, I'm going to use the magic method _toString(), which allows an object to specify how to return a string.
Viewers: in countries Watching now:
Whether you're enhancing or optimizing existing code or just starting from scratch, there's never a better time to start integrating object-oriented design techniques. This course shows how to integrate the principles of object-oriented programming into the build of a PHP-driven web page or application. After an overview of what objects and classes are and why they should be used, author Jon Peck dives into creating and instantiating objects, then defining the class relationships and interactions that will form the basis of your coding arsenal. The course also shows how to leverage PHP objects and implement design patterns, and looks at steps you can take to continue adding to your programming tool belt.
- Historical overview of object-oriented PHP
- Defining classes
- Creating a method/object context with $this
- Accessing classes without instantiation
- Creating a database class
- Extending and abstracting classes
- Cloning and comparing objects
- Error handling with exceptions
- Implementing design patterns, such as the factory and strategy patterns
Standardizing object rendering as a string
Instead of just asking an object to display itself, it's more convenient to assume that when echoed, an object knows to treat itself like a string. At a high level, this concept is known as polymorphism, where I can act on an object without knowing exactly what the class is. In practice, this means more common function names between classes. I am going to cover polymorphism in greater depth in a later segment. For now, let's focus on making an address display as a string by echoing. To do this, I'm going to use the magic method _toString(), which allows an object to specify how to return a string.
I am going to switch back to the demo script. Then, at the end, add the following
Address _toString. Then echo $address_2. Refresh your browser.
You will see a catchable fatal error.
This is because the object does not have a method defined to convert itself to a string.
Open the Address class. Under the Magic _set() method, declare a new method
called _toString. Add the PHP documentation. Magic _toString returns a string
As you already defined the method to display the address, call it from
_toString, and return its value. return this->display. Save, then return to
your browser, and refresh.
Instead of an error, you will see the address rendered as if you called the display method directly. This is just one example of polymorphism, and I'll get into sharing interfaces a bit later. In this chapter, I've been focusing on overloading with magic methods. I started by defining just what magic methods are, then demonstrated them by overloading property access and by restricting visibility. I customized object construction by setting the time that the object was created automatically, then made an address treat itself like a string, using polymorphism.
So far, we've worked with classes and instances, but did you know that you can access methods and properties without instantiating an object?
Find answers to the most frequently asked questions about Object-Oriented Programming with PHP .
Here are the FAQs that matched your search "" :
- Q: I'm not seeing warnings or errors in my environment like the video; why not?
- A: Your PHP configuration is probably configured not to show them to you. This is often true on commercial web hosts and is often the default. Fortunately, there are multiple ways of resolving this.
The easiest way would be to explicitly enable error reporting at the top of the PHP script you wish to debug.
error_reporting(E_ALL | E_STRICT);
Alternatively, if you have access to your php.ini file and you want to always have error reporting on, change error_reporting = to a development friendly value of
error_reporting = E_ALL | E_STRICT
then change display_errors = to
display_errors = On
Finally, if access to the php.ini file is not available, you can add the following directives to your .htaccess or VirtualHost configuration for Apache:
php_value error_reporting 32767
php_value display_errors 1
If you would like a development optimized development environment like the one utilized in this course, see Up and Running with Linux for PHP Developers, here in the lynda.com online training library.
Q: This course was updated on 4/10/2013. What changed?
A: The author rerecorded some of the tutorials to add more background information and better graphics.
Sorry, there are no matches for your search "" —to search again, type in another word or phrase and click search.