Prozesssteuerung – Hinweise zum PHP-Handbuch
Skripte bestehen aus Anweisungen, und Anweisungen basieren auf der Prozesssteuerung, um Funktionen zu implementieren. In diesem Abschnitt wird hauptsächlich die Verwendung mehrerer Schlüsselwörter vorgestellt.
elseif
elseif
verhält sich genauso wie else if
. Wenn Sie einen Doppelpunkt verwenden, um die if/elseif
-Bedingung zu definieren, können Sie kein aus zwei Wörtern bestehendes else if
verwenden, da PHP sonst einen Parsing-Fehler generiert.
<code><?php $a = 1; $b = 2; if($a > $b) : echo "$a is greater than $b"; elseif($a == $b) : echo "$a equals $b"; else : echo "$a is neither greater than or equal to $b"; endif;</code>
Alternative Syntax
Die folgenden Schlüsselwörter können die alternative Syntax der Flusskontrolle verwenden. Die Grundform besteht darin, die linke geschweifte Klammer durch einen Doppelpunkt und die rechte geschweifte Klammer durch die folgenden Zeichen zu ersetzen.
<code>if - endif while - endwhile for - endfor foreach - endforeach switch - endswitch</code>
Achtung! PHP unterstützt nicht das Mischen der beiden Syntaxen innerhalb desselben Steuerblocks.
do-while
Diese Schleife kommt auf den ersten Blick bekannt vor, einige ihrer Verwendungsmöglichkeiten werden jedoch übersehen.
Im-Handbuch heißt es, dass erfahrene Benutzer der C-Sprache möglicherweise mit einer anderen Verwendung von do-while
-Schleifen vertraut sind, bei denen Anweisungen innerhalb von do-while(0)
platziert werden. Dies ist das erste Mal, dass ich von dieser Technik höre. Es scheint, dass ich noch ein C-Neuling bin.
Lassen Sie uns übrigens die Vorteile dieser besonderen Verwendung suchen und organisieren do-while(0)
.
- Code-Chunking ist intuitiver als nur die Verwendung von geschweiften Klammern.
- Verwenden Sie
break
, um den verbleibenden Codeabschnitt zu überspringen.
- Es ist hilfreich für Makrodefinitionsfunktionen. Sie können bei der Verwendung ein Semikolon am Ende des Satzes hinzufügen, was eher wie ein Funktionsaufruf aussieht.
- Der Bereich auf Blockebene verhindert, dass sich Variablennamen auf Bereiche der oberen Ebene ausbreiten.
- Transformierte
goto
Aussage.
Dieser Beitrag erklärt sehr gut die Rolle von do{}while(0) - c - SegmentFault.
foreach
foreach
kann nur auf Array- und Objektdurchquerung angewendet werden. foreach
Die Syntaxstruktur bietet eine einfache Möglichkeit, das Array zu durchlaufen. Nachfolgend finden Sie zwei Syntaxen.
<code>foreach(array_expression as $value) statement foreach(array_expression as $key => $value) statement</code>
Um den Wert eines Array-Elements zu ändern, müssen Sie eine Referenzzuweisung verwenden, die durch Hinzufügen von $value
vor &
erreicht wird.
<code><?php $arr = array(1, 2, 3, 4); foreach($arr as &$value) { $value = $value * 2; } unset($value); foreach($arr as $value) { echo "$value "; // 2 4 6 8 }</code>
Achtung! Die $value
-Referenz des letzten Elements des Arrays bleibt auch nach der foreach
-Schleife erhalten und es wird empfohlen, sie mit unset()
zu zerstören.
alles auflisten
Im Beispielprogramm wurde auch eine spezielle Traversal-Methode gefunden, nennen wir sie list-each
.
Wenn foreach
mit der Ausführung beginnt, zeigt der Zeiger im Array automatisch auf die erste Einheit, sodass es nicht erforderlich ist, foreach
vor der reset()
-Schleife aufzurufen. Aber für while
in list-each
ist der Array-interne Zeiger $arr
immer vorhanden, sodass reset($arr)
vor der nächsten Schleife benötigt wird.
<code><?php $arr = array('one', 'two', 'three'); // reset($arr); while(list($key, $value) = each($arr)) { echo "Key: $key; Value: $value "; } reset($arr); while(list($key, $value) = each($arr)) { echo "Key: $key; Value: $value "; }</code>
Im obigen Code kann das erste reset
weggelassen werden, das zweite reset
jedoch nicht.
Liste
PHP 5.5 bietet die Möglichkeit, über ein Array von Arrays zu iterieren und verschachtelte Arrays in Schleifenvariablen zu entpacken.
<code><?php $array = [ [1, 2], [3, 4], ]; foreach($array as list($a, $b)) { echo "A: $a; B: $b"; }</code>
list()
kann weniger Zellen als das verschachtelte Array haben. In diesem Fall werden die zusätzlichen Array-Zellen ignoriert. Bei mehreren wird eine Fehlermeldung ausgegeben.
Pause
break
wird verwendet, um die Ausführung der aktuellen for/foreach/while/do-while/switch
-Struktur zu beenden. break
Sie können einen optionalen numerischen Parameter akzeptieren, um zu entscheiden, aus wie vielen Schleifen herausgesprungen werden soll, aber der Parameter darf keine Variable sein.
break
Dies ist das erste Mal, dass ich das Herausspringen aus mehreren Schleifen erlebt habe, also habe ich ein kleines Programm geschrieben, um es auszuprobieren.
<code><?php while(1) { while(1) { echo 'hello '; break 2; } } echo 'world';</code>
Ich habe es speziell in der C-Sprache ausprobiert und einen Syntaxfehler erhalten.
Weiter
Ähnlich wie break
kann continue
auch einen optionalen numerischen Parameter akzeptieren, um zu bestimmen, wie viele Schleifen bis zum Ende der Schleife übersprungen werden sollen.
Achtung! In PHP wird die switch
-Anweisung als Schleifenstruktur betrachtet, die continue
verwenden kann.
Schalter
Im-Handbuch heißt es, dass sich PHP von anderen Sprachen unterscheidet. Die Wirkung der continue
-Anweisung auf switch
ähnelt der von break
. Was bedeutet das?
switch/case
führt einen losen Vergleich durch ==
, keinen strengen Vergleich ===
. Aus Effizienzgründen wird die Bedingung in der switch
-Anweisung nur einmal ausgewertet und zum Vergleich mit jeder case
-Anweisung verwendet. case
Der Ausdruck kann ein beliebiger Ausdruck sein, der einen einfachen Typ ergibt. Arrays oder Objekte können nicht verwendet werden. Es ist erlaubt, nach der case
-Anweisung ein Semikolon anstelle eines Doppelpunkts zu verwenden.
erklären
Die Strukturdeclare
wird verwendet, um die Ausführungsanweisungen eines Codeabschnitts festzulegen. Die Syntaxstruktur ist wie folgt:
<code>declare(directive) statement</code>
directive
können Sie das Verhalten des Codesegments declare
festlegen. Derzeit werden nur zwei Befehle erkannt: ticks
und encoding
. Die declare
-Struktur kann auch im globalen Bereich verwendet werden und wirkt sich nach Ablauf auf den gesamten Code aus. Wenn jedoch eine Datei mit einer declare
-Struktur in andere Dateien eingebunden wird, funktioniert sie nicht mit der übergeordneten Datei, die sie enthält.
Tick (Taktzyklus) ist ein Ereignis, das jedes Mal auftritt, wenn der Interpreter N zeitgesteuerte Low-Level-Anweisungen im declare
Codesegment ausführt. Die Ereignisse, die in jedem Tick auftreten, werden durch register_tick_function()
angegeben. Die Verwendung ist ungefähr wie folgt.
<code>declare(ticks = 1); function tick_handler() { echo "tick_hander() called.\n"; } register_tick_function('tick_hander');</code>
可计时的低级语句有很多,register_tick_function()
后会调用一次周期事件,每条语句后会调用一次周期事件,花括号结束时会调用一次周期事件。
注意,PHP中表达式不能用逗号隔开,不然会出现语法错误。这点与C语言不同,刚注意到。
可以用encoding指令来对每段脚本指定其编码方式。用法如下:
<code>declare(encoding = 'ISO-8859-1);</code>
return
如果是在全局范围中调用,则当前脚本文件中止运行。如果当前脚本文件是被include
或者require
,则控制交回调用文件。如果当前脚本时被include
的,则return
的值会被当作include
调用的返回值,那require
呢?
require
require
和include
几乎完全一样,除了处理失败的方式不同之外。
require
在出错时产生E_COMPILE_ERROR
级别的错误,脚本中止。而include
只产生警告E_WARNING
,脚本继续执行。
include
include
语句包含并运行指定文件,这里要注意一下指定文件的寻找次序。
- 被包含文件先按参数给出的路径寻找。如果定义了路径,
include_path
会被完全忽略。
- 如果没有给出目录(只有文件名)时则按照
include_path
指定的目录寻找。若没找到才在调用脚本文件所在目录和当前工作目录下寻找。那么问题来了,调用脚本文件所在目录和当前工作目录有什么区别呢?
- 如果最后仍未找到文件,则
include
结构会发出一条警告,require
结构会发出一个致命错误。
当一个文件被包含时,其中包含的代码继承了include
所在行的变量范围。从该处开始,被调用文件中定义的变量才可在调用文件中使用。当一个文件被包含时,语法解析器在目标文件的开头脱离PHP模式并进入HTML模式,当文件结尾回复。
对于返回值,在失败时include
返回FALSE
并且发出警告。成功的包含则返回1,除非在包含文件中另外给出了返回值。如果在包含文件中定义有函数,这些函数不管是在return
之前还是之后定义的,都可以独立在主文件中使用。
如果来自远程服务器的文件应该在远端运行而只输出结果,那用readfile()
函数更好。另一种将PHP文件包含到一个变量中的方法是用输出控制函数结合include
来捕获其输出。第一次遇到,比较陌生。下面这段代码能将脚本vars.php
中返回的内容输出。
<code><?php $string = get_include_contents('vars.php'); function get_include_contents($filename) { if(is_file($filename)) { ob_start(); include $filename; $contents = ob_get_contents(); ob_end_clean(); return $contents; } return false; } echo $string;</code>
因为include
和require
是一种特殊的语言结构,其参数不需要括号。如果文件被包含两次,PHP会发出致命错误,因为函数已经被定义。推荐使用include_once
。
require_once
require_once
语句和require
语句完全相同,唯一区别是,PHP会检查该文件是否已经被包含过,如果是则不会再次包含。
include_once
include_once
语句和include
语句类似,唯一区别是如果该文件已经被包含过,则不会再次包含。
goto
goto
操作符用于跳转到程序的另一位置,目标位置可以用目标名称加上冒号来标记。PHP中的goto
有一定限制,目标位置只能位于同一个文件和作用域。也就是说无法跳出一个函数或类方法,也无法跳入到任何循环或者switch
结构。
(全文完)
以上就介绍了流程控制 - PHP手册笔记,包括了方面的内容,希望对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

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

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
