Heim Backend-Entwicklung PHP-Tutorial PHP透过字符串调用函数

PHP透过字符串调用函数

Jun 13, 2016 pm 12:01 PM
array echo user

PHP通过字符串调用函数

来自:http://ziming.org/archives/6695.html

?

1. call_user_func

<span style="color: #000000; font-weight: bold;">function</span> a<span style="color: #009900;">(</span><span style="color: #000088;">$b</span><span style="color: #339933;">,</span><span style="color: #000088;">$c</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>		<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$b</span><span style="color: #339933;">;</span>		<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$c</span><span style="color: #339933;">;</span><span style="color: #009900;">}</span><span style="color: #990000;">call_user_func</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">"111"</span><span style="color: #339933;">,</span><span style="color: #0000ff;">"222"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><span style="color: #990000;">call_user_func</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">"333"</span><span style="color: #339933;">,</span><span style="color: #0000ff;">"444"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>?<span style="color: #666666; font-style: italic;">//显示 111 222 333 444</span><span style="color: #000000; font-weight: bold;">?></span>?<span style="color: #666666; font-style: italic;">//调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也是满有新意的:</span><span style="color: #000000; font-weight: bold;">class</span> a <span style="color: #009900;">{</span>		<span style="color: #000000; font-weight: bold;">function</span> b<span style="color: #009900;">(</span><span style="color: #000088;">$c</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>				<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$c</span><span style="color: #339933;">;</span>		<span style="color: #009900;">}</span><span style="color: #009900;">}</span><span style="color: #990000;">call_user_func</span><span style="color: #009900;">(</span><span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #0000ff;">"a"</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">"b"</span><span style="color: #009900;">)</span><span style="color: #339933;">,</span><span style="color: #0000ff;">"111"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>?<span style="color: #666666; font-style: italic;">//显示 111</span><span style="color: #000000; font-weight: bold;">?></span>
Nach dem Login kopieren

2. call_user_func_array

call_user_func_array函数和call_user_func很相似,只不过是换了一种方式传递了参数,让参数的结构更清晰:

<span style="color: #000000; font-weight: bold;">function</span> a<span style="color: #009900;">(</span><span style="color: #000088;">$b</span><span style="color: #339933;">,</span> <span style="color: #000088;">$c</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>		<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$b</span><span style="color: #339933;">;</span>		<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$c</span><span style="color: #339933;">;</span><span style="color: #009900;">}</span><span style="color: #990000;">call_user_func_array</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #0000ff;">"111"</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">"222"</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>?<span style="color: #666666; font-style: italic;">//显示 111 222</span><span style="color: #000000; font-weight: bold;">?></span>?<span style="color: #666666; font-style: italic;">//call_user_func_array函数也可以调用类内部的方法的</span>?<span style="color: #000000; font-weight: bold;">Class</span> ClassA<span style="color: #009900;">{</span>		<span style="color: #000000; font-weight: bold;">function</span> bc<span style="color: #009900;">(</span><span style="color: #000088;">$b</span><span style="color: #339933;">,</span> <span style="color: #000088;">$c</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>    		<span style="color: #000088;">$bc</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$b</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$c</span><span style="color: #339933;">;</span>				<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$bc</span><span style="color: #339933;">;</span>		<span style="color: #009900;">}</span><span style="color: #009900;">}</span><span style="color: #990000;">call_user_func_array</span><span style="color: #009900;">(</span><span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'ClassA'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'bc'</span><span style="color: #009900;">)</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #0000ff;">"111"</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">"222"</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>?<span style="color: #666666; font-style: italic;">//显示 333</span><span style="color: #000000; font-weight: bold;">?></span>
Nach dem Login kopieren

call_user_func函数和call_user_func_array函数都支持引用,这让他们和普通的函数调用更趋于功能一致:

<span style="color: #000000; font-weight: bold;">function</span> a<span style="color: #009900;">(</span><span style="color: #339933;">&</span><span style="color: #000088;">$b</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>		<span style="color: #000088;">$b</span><span style="color: #339933;">++;</span><span style="color: #009900;">}</span><span style="color: #000088;">$c</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #990000;">call_user_func</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span> <span style="color: #339933;">&</span><span style="color: #000088;">$c</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><span style="color: #b1b100;">echo</span> <span style="color: #000088;">$c</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//显示 1</span><span style="color: #990000;">call_user_func_array</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #339933;">&</span><span style="color: #000088;">$c</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><span style="color: #b1b100;">echo</span> <span style="color: #000088;">$c</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//显示 2</span>
Nach dem Login kopieren
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Fünf ausgewählte Open-Source-Projekte in der Go-Sprache, mit denen Sie die Welt der Technologie erkunden können Fünf ausgewählte Open-Source-Projekte in der Go-Sprache, mit denen Sie die Welt der Technologie erkunden können Jan 30, 2024 am 09:08 AM

Im heutigen Zeitalter der rasanten technologischen Entwicklung schießen Programmiersprachen wie Pilze nach einem Regenschauer aus dem Boden. Eine der Sprachen, die viel Aufmerksamkeit erregt hat, ist die Go-Sprache, die von vielen Entwicklern wegen ihrer Einfachheit, Effizienz, Parallelitätssicherheit und anderen Funktionen geliebt wird. Die Go-Sprache ist für ihr starkes Ökosystem mit vielen hervorragenden Open-Source-Projekten bekannt. In diesem Artikel werden fünf ausgewählte Open-Source-Projekte für die Go-Sprache vorgestellt und der Leser soll die Welt der Open-Source-Projekte für die Go-Sprache erkunden. KubernetesKubernetes ist eine Open-Source-Container-Orchestrierungs-Engine für die Automatisierung

Array mit der Array.Sort-Funktion in C# sortieren Array mit der Array.Sort-Funktion in C# sortieren Nov 18, 2023 am 10:37 AM

Titel: Beispiel für die Verwendung der Array.Sort-Funktion zum Sortieren eines Arrays in C#. Text: In C# ist Array eine häufig verwendete Datenstruktur, und häufig sind Array-Sortiervorgänge erforderlich. C# stellt die Array-Klasse bereit, die über die Sort-Methode verfügt, um Arrays bequem zu sortieren. In diesem Artikel wird gezeigt, wie Sie ein Array mithilfe der Array.Sort-Funktion in C# sortieren, und es werden spezifische Codebeispiele bereitgestellt. Zunächst müssen wir die grundlegende Verwendung der Array.Sort-Funktion verstehen. Array.So

Go-Grundlagen zur Sprachentwicklung: 5 beliebte Framework-Empfehlungen Go-Grundlagen zur Sprachentwicklung: 5 beliebte Framework-Empfehlungen Mar 24, 2024 pm 01:15 PM

„Grundlagen der Go-Sprachentwicklung: 5 beliebte Framework-Empfehlungen“ Als schnelle und effiziente Programmiersprache wird die Go-Sprache von immer mehr Entwicklern bevorzugt. Um die Entwicklungseffizienz zu verbessern und die Codestruktur zu optimieren, entscheiden sich viele Entwickler für die Verwendung von Frameworks, um Anwendungen schnell zu erstellen. In der Welt der Go-Sprache stehen viele hervorragende Frameworks zur Auswahl. In diesem Artikel werden fünf beliebte Go-Sprach-Frameworks vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, diese Frameworks besser zu verstehen und zu verwenden. 1.GinGin ist ein leichtes Web-Framework mit hoher Geschwindigkeit

Laravel-Entwicklung: Wie implementiert man die WebSockets-Kommunikation mit Laravel Echo und Pusher? Laravel-Entwicklung: Wie implementiert man die WebSockets-Kommunikation mit Laravel Echo und Pusher? Jun 13, 2023 pm 05:01 PM

Laravel ist ein beliebtes PHP-Framework, das hoch skalierbar und effizient ist. Es bietet viele leistungsstarke Tools und Bibliotheken, die es Entwicklern ermöglichen, schnell hochwertige Webanwendungen zu erstellen. Darunter sind LaravelEcho und Pusher zwei sehr wichtige Tools, mit denen die WebSockets-Kommunikation einfach implementiert werden kann. In diesem Artikel wird detailliert beschrieben, wie diese beiden Tools in Laravel-Anwendungen verwendet werden. Was sind WebSockets? WebSockets

Detaillierte Erläuterung der Rolle und Verwendung des Schlüsselworts echo in PHP Detaillierte Erläuterung der Rolle und Verwendung des Schlüsselworts echo in PHP Jun 28, 2023 pm 08:12 PM

Ausführliche Erklärung der Rolle und Verwendung des Schlüsselworts echo in PHP PHP ist eine weit verbreitete serverseitige Skriptsprache, die häufig in der Webentwicklung verwendet wird. Das Schlüsselwort echo ist eine Methode zur Ausgabe von Inhalten in PHP. In diesem Artikel werden die Funktion und Verwendung des Schlüsselworts echo ausführlich vorgestellt. Funktion: Die Hauptfunktion des Schlüsselworts echo besteht darin, Inhalte an den Browser auszugeben. Bei der Webentwicklung müssen wir Daten dynamisch auf der Front-End-Seite präsentieren. Zu diesem Zeitpunkt können wir das Schlüsselwort echo verwenden, um die Daten auf der Seite auszugeben. e

Was sind die beliebtesten Golang-Frameworks auf dem Markt? Was sind die beliebtesten Golang-Frameworks auf dem Markt? Jun 01, 2024 pm 08:05 PM

Die derzeit beliebtesten Go-Frameworks sind: Gin: leichtes, leistungsstarkes Web-Framework, einfach und benutzerfreundlich. Echo: Ein schnelles, hochgradig anpassbares Web-Framework, das leistungsstarkes Routing und Middleware bietet. GorillaMux: Ein schneller und flexibler Multiplexer, der erweiterte Routing-Konfigurationsoptionen bietet. Fiber: Ein leistungsoptimiertes, leistungsstarkes Web-Framework, das viele gleichzeitige Anfragen verarbeitet. Martini: Ein modulares Web-Framework mit objektorientiertem Design, das einen umfangreichen Funktionsumfang bietet.

Einfache und klare Methode zur Verwendung der PHP-Funktion array_merge_recursive() Einfache und klare Methode zur Verwendung der PHP-Funktion array_merge_recursive() Jun 27, 2023 pm 01:48 PM

Beim Programmieren in PHP müssen wir häufig Arrays zusammenführen. PHP stellt die Funktion array_merge() bereit, um die Array-Zusammenführung abzuschließen. Wenn jedoch derselbe Schlüssel im Array vorhanden ist, überschreibt diese Funktion den ursprünglichen Wert. Um dieses Problem zu lösen, stellt PHP in der Sprache auch eine Funktion array_merge_recursive() bereit, die Arrays zusammenführen und die Werte derselben Schlüssel beibehalten kann, wodurch das Programmdesign flexibler wird. array_merge

Entdecken Sie das Go-Sprach-Framework: 5 Optionen, die Sie nicht verpassen sollten! Entdecken Sie das Go-Sprach-Framework: 5 Optionen, die Sie nicht verpassen sollten! Feb 19, 2024 pm 02:29 PM

Als schnelle und effiziente Programmiersprache wurde die Go-Sprache schon immer von Programmierern bevorzugt. Im Go-Sprachökosystem spielen Frameworks eine wichtige Rolle dabei, Entwicklern dabei zu helfen, Anwendungen schneller zu erstellen. In diesem Artikel werden fünf Go-Sprachframeworks vorgestellt, damit Sie deren Eigenschaften und Verwendung verstehen. 1. Gin-Framework Das Gin-Framework ist ein leichtes Web-Framework mit schnellen und leistungsstarken Eigenschaften. Verwenden Sie das Gin-Framework, um schnell RESTful-APIs und Webanwendungen zu erstellen. Hier ist ein einfacher Beispielcode:

See all articles