* 2. 2 Funktionen, die Rückrufe ausführen
* Tipp: Was ist ein Rückruf?
* Die vom PHP-System bereitgestellten Funktionen werden als direkte Aufrufe bezeichnet, auch genannt: direkt Aufrufe
* Wenn das PHP-System eine benutzerdefinierte Funktion aufruft, muss diese über eine Proxy-Funktion aufgerufen werden, die als indirekter Aufruf oder auch Rückruf bezeichnet wird
* Das ist, was wir tun habe heute etwas über call_user_func() und call_user_func_array() gelernt. Die Proxy-Funktion
* kann das System ersetzen, um unsere benutzerdefinierte Funktion aufzurufen
* 1.call_user_func_array($callback, $array): Array-Parameter verwenden um die Callback-Funktion auszuführen
* 2.call_user_func($callback, $array): Der erste Parameter wird als Callback-Funktionsaufruf verwendet
* Hinweis: 1. Normalerweise ist dies nicht erforderlich Schreiben Sie Parameter in den Rückruf, aber um sie über andere Funktionen zu erhalten. 2. Parameterübergabe per Referenz ist nicht zulässig
//1 Parameter werden einzeln übergeben mit: call_user_func()
//Einzelner Parameter
echo call_user_func(function(){ //如果匿名回调没写参数,可以通过func_get_args()获取 return '欢迎来到'.func_get_arg(0); },'php中文网'); echo '<hr>'; echo call_user_func(function($site){ return '欢迎来到'.$site; },'php中文网'); echo '<hr>';
//Mehrere Parameter, tatsächliche Parametermenge Die Anzahl der Parameter muss mit dem Rückruf übereinstimmen, und jeder Überschuss wird ignoriert
echo call_user_func(function($site,$course){ return '欢迎来到'.$site.'学习'.$course.'课程'; },'php中文网','php'); echo '<hr>'; //支持调用类中的方法做为回调 class Demo1 { //普通方法 public function sum($a, $b) { return $a+$b; } } class Demo2 { //静态方法 public static function multi($a,$b) { return $a*$b; } }
//Eine normale Methode aufrufen : Der Rückruf muss als Array übergeben werden: [Objekt, 'Methodenname']
$obj = new Demo1; echo call_user_func([$obj,'sum'],10,15);
//php5 .4+ und höher, kann abgekürzt werden:
echo call_user_func([(new Demo1()),'sum'],10,15); echo '<hr>';
//Call static Methode: Es gibt zwei Möglichkeiten: String und Array
//String: 'Klassenname::Methodenname'
echo call_user_func('Demo2::multi',10,15);
//Array: [Klassenname, 'Methodenname']
echo '<hr>'; echo call_user_func(['Demo2','multi'],20,5);
//Wenn es einen Namespace gibt, fügen Sie einfach die Namespace-Zeichenfolge vor dem Klassennamen hinzu oder verwenden Sie eine Konstante_ _NAMESPACE__
//Verstehen Sie call_user_func(), dann ist call_user_func_array() nur sehr einfach Die Parameter sind unterschiedlich
* 2. call_user_func_array(callback, array)
* nur Akzeptiert zwei Parameter: Callback, Index-Array und die an den Callback übergebenen Parameter werden alle in das Index-Array gepackt
* Der einzige Unterschied zu call_user_func(array,arg1...) besteht darin, dass die Methode zur Übergabe von Parametern unterschiedlich ist
* Rückrufe unterstützen auch: String-Funktionsnamen, Klassennamen, Arrays, anonym Funktionen
echo '<hr>'; echo call_user_func_array(function(){ //查看传递给回调的参数 // return print_r(func_get_args(),true); $msg = '前端开发的基础知识包括:'; //遍历参数数组 foreach (func_get_args() as $value) { $msg .= $value.','; } //去掉未尾逗号,并替换成感叹号 return rtrim($msg,',').'!'; }, ['html','css','javascript']); echo '<hr>'; class Demo3 { public function func1() { return __METHOD__.'<pre class="brush:php;toolbar:false">'.print_r(func_get_args(),true).''; } } class Demo4 { public static function func2() { return __METHOD__.'
'.print_r(func_get_args(),true).''; } }
//Methoden in der Callback-Klasse
echo call_user_func_array([(new Demo3),'func1'], ['php','java','c']);
//Callbacks zum Aufruf statischer Methoden:
//1. Verwenden Sie die Array-Parametermethode
echo call_user_func_array(['Demo4','func2'], ['html','css','jQuery']);
//2. Verwenden Sie die String-Parameter-Methode
echo call_user_func_array('Demo4::func2', ['html','css','jQuery']);
//Wenn es einen Namespace gibt, fügen Sie einfach den Namen vor dem Klassennamenspace oder __NAMESPACE__
hinzuDas obige ist der detaillierte Inhalt vonCallback-Funktion in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

php函数返回值只能有一个。在PHP中,函数返回值使用return语句定义,语法“return 返回值;”。return语句只能返回一个参数,即函数只能有一个返回值;如果要返回多个值的话,就需在函数中定义一个数组,将返回值存储在数组中返回。

不是,php传参可以是字符串、数字、布尔值、数组等。从PHP5.6版本开始支持传递数组参数,函数的形式参数可使用“…”来表示函数可接受一个可变数量的参数,而可变参数将会被当作一个数组传递给函数,语法“function 函数名(...$arr){//执行代码}”。

随着互联网技术的发展,PHP已经成为了非常流行的开发语言之一。身为一个PHP开发者,了解PHP函数和方法的区别是非常重要的,因为它们在编写代码的时候都是必不可少的。在本文中,我们将详细介绍PHP函数和方法的区别。

php函数的参数赋值有3种:1、值传递赋值,将实参的值复制一份再赋值给函数的形参;2、引用传递赋值,把实参的内存地址复制一份,然后传递给函数的形参,进而将实参值赋值给形参;3、直接给函数的参数指定默认值,语法“函数名(参数变量='值')”。

PHP作为一种非常流行的脚本语言,有着强大的函数库支持,其函数的命名规范和规则对于开发效率和代码可读性都有着重要的影响。本文将介绍PHP函数的命名规范及规则。一、命名风格在PHP中,函数名需要严格符合命名规范和规则,规范主要包括两个方面:命名风格和命名规则。1.下划线命名法下划线命名法是PHP函数命名最常用的方式,也是官方推荐的一种方式。遵循这种方式的函数名

随着现代编程语言的不断发展,编程的效率和功能性也不断提高,其中PHP作为一种广泛使用的服务器端脚本语言,也在不断地更新和完善其自身的功能列表。PHP函数的迭代器函数就是其中的一种新功能,为PHP程序员提供了更加灵活和高效的编程方式。在本文中,我们将详细介绍PHP函数的迭代器函数的相关知识。什么是PHP函数的迭代器函数?在介绍PHP函数的迭代器函数之前,我们首

PHP是一种开源的服务器端脚本语言,通常用于开发Web应用程序。PHP具有易学易用、灵活、性能优异等优点,因此在Web开发领域得到了广泛应用。而MSSQL作为一种流行的关系型数据库管理系统,也被PHP所支持。在PHP中实现MSSQL数据库操作,需要使用MSSQL函数。MSSQL函数可用于连接数据库、执行查询语句、读写数据库中的数据等操作。接下来,将详细介绍一

在php中,递归函数指的是自调用函数,也就是函数在函数体内部直接或间接地自己调用自己;使用递归函数时,需要在函数体中附加一个判断条件,以判断是否需要继续执行递归调用,当条件满足时会终止函数的递归调用。


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools
