Detailed explanation of the usage and difference between __call and __callStatic in php

伊谢尔伦
Release: 2023-03-12 13:48:01
Original
2236 people have browsed it

ThecallandcallStaticmagic methods were added after php 5.3.

#callWhen the method to be called does not exist or has insufficient permissions, the call method will be automatically called.

callStaticWhen the called static method does not exist or has insufficient permissions, the callStatic method will be automatically called.

call($funcname, $arguments) callStatic($funcname, $arguments)
Copy after login

Parameter description:

##$funcnameStringCall method name.

$argumentsArray Parameters taken when calling the method.

call example

memberdata[$name] = $arguments[0]; break; case 'get': return isset($this->memberdata[$name])? $this->memberdata[$name] : ''; break; default: } } } class User extends Member{ public function show(){ if($this->memberdata){ foreach($this->memberdata as $key=>$member){ echo $key.':'.$member.'
'; } } } } class Profession extends Member{ public function show(){ if($this->memberdata){ foreach($this->memberdata as $key=>$member){ echo $key.':'.$member.'
'; } } } } $userobj = new User(); $userobj->set_name('fdipzone'); $userobj->set_age(29); $userobj->show(); $probj = new Profession(); $probj->set_profession('IT SERVICE'); $probj->set_price(2500); $probj->show(); ?>
Copy after login

callStatic example

$member){ echo $key.':'.$member.'
'; } } } } class Profession extends Member{ public static function show(){ $feature = get_called_class(); if(self::$memberdata[$feature]){ foreach(self::$memberdata[$feature] as $key=>$member){ echo $key.':'.$member.'
'; } } } } User::set_name('fdipzone'); User::set_age(29); User::show(); Profession::set_profession('IT SERVICE'); Profession::set_price(2500); Profession::show(); ?>
Copy after login

The above is the detailed content of Detailed explanation of the usage and difference between __call and __callStatic in php. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
php
source:php.cn
Statement of this Website
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
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!