Home >Backend Development >PHP Tutorial >Section 11--Overloading--ClassesandObjectsinPHP511_PHP Tutorial

Section 11--Overloading--ClassesandObjectsinPHP511_PHP Tutorial

WBOY
WBOYOriginal
2016-07-13 17:24:23806browse

| = This article is read by Haohappy > | = Notes from the Chapter Classes and Objects | = Translation + personal experience | = Please do not reprint to avoid unnecessary trouble that may occur, thank you | = Welcome to criticize and correct me, Hope to make progress together with all PHP enthusiasts! +------------------------------------------------ ---------------------------------------+ */ Section 11--Reloading PHP4 already has overloading syntax to establish mappings to external object models, just like Java and COM. PHP5 brings powerful object-oriented overloading, allowing programmers to create custom behaviors to access properties and call methods . Overloading can be done through the special methods __get, __set, and __call. PHP will call these methods when the Zend engine tries to access a member and cannot find it. In Example 6.14, __get and __set replace all pairs. Access to an array of attribute variables. If necessary, you can implement any type of filtering you want. For example, the script can prohibit setting attribute values, start with a certain prefix or include a certain type of value. The __call method illustrates how you call Undefined method. When you call an undefined method, the method name and the parameters received by the method will be passed to the __call method, and PHP returns the value of __call to the undefined method. Listing 6.14 User-level overloading properties [$property_name])) { return($this->properties[$property_name]); } else { return(NULL); } } function __set($property_name, $value) { $this->properties[$property_name] = $value; } function __call($function_name, $args) { print("Invoking $function_name()


n"); print("Arguments: "); print_r($args); return(TRUE) ; } } $o = new Overloader(); //invoke __set() assigns a value to a non-existent attribute variable and activates __set() $o->dynaProp = "Dynamic Content"; //invoke __get() activates_ _get() print($o->dynaProp . "
n"); //invoke __call() activate __call() $o->dynaMethod("Leon", "Zeev"); ?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/532154.htmlTechArticle| = This article is read by Haohappy> | = Notes from the Chapter Classes and Objects| = Translated mainly + personal Thoughts | = Please do not reprint to avoid possible unnecessary trouble, thank you | = Criticisms and suggestions are welcome...
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