Heim > Artikel > Backend-Entwicklung > Lernen Sie grundlegende Beispiele für PHP-Flusskontrollanweisungen (einschließlich Funktionen und Klassen)
PHPSteueranweisung
1. IF-Anweisung
Die IF-Anweisung ist in den meisten Sprachen eine wichtige Funktion. Sie führt Programmsegmente basierend auf Bedingungen aus. Die IF-Anweisung von PHP sieht aus wie C:
if (expr)
Statement
Wie in Ausdrücken besprochen, wird expr anhand seines Wahrheitswerts ausgewertet. Wenn expr TRUE ist, führt PHP die entsprechende Anweisung aus, wenn sie FALSE ist, ignoriert es sie.
Wenn $a größer als $b ist, wird im folgenden Beispiel „a ist größer als b“ angezeigt:
if ($a >$b)
print „a ist größer als b“;
Normalerweise möchten Sie mehr als eine Anweisung basierend auf einer Bedingung ausführen. Natürlich muss nicht jeder Aussage ein IF-Urteil hinzugefügt werden. Stattdessen können mehrere Anweisungen in einer Anweisungsgruppe zusammengefasst werden.
If-Anweisungen können in andere IF-Anweisungen verschachtelt werden, sodass Sie verschiedene Teile des Programms flexibel und bedingt ausführen können.
2. ELSE-Anweisung
Normalerweise möchten Sie eine Anweisung ausführen, wenn eine bestimmte Bedingung erfüllt ist, und eine andere Anweisung, wenn die Bedingung nicht erfüllt ist. Dazu wird ELSE verwendet. ELSE erweitert die IF-Anweisung und führt eine weitere Anweisung aus, wenn der IF-Anweisungsausdruck FALSE ist. Wenn beispielsweise das folgende Programm ausgeführt wird und $a größer als $b ist, wird „a ist größer als b“ angezeigt, andernfalls wird „a ist NICHT größer als b“ angezeigt:
if ($a>$b) { print "a is bigger than b"; } else { print "a is NOT bigger than b"; }
3. ELSEIF-Anweisung
ELSEIF ist, wie der Name schon sagt, eine Kombination aus IF und ELSE. Ähnlich wie ELSE erweitert es die IF-Anweisung, um andere Anweisungen auszuführen, wenn der IF-Ausdruck FALSE ist. Aber im Gegensatz zu ELSE werden andere Anweisungen nur dann ausgeführt, wenn der ELSEIF-Ausdruck ebenfalls TRUE ist.
Sie können mehrere ELSEIF-Anweisungen in einer IF-Anweisung verwenden. Die erste Anweisung, deren ELSEIF-Ausdruck TRUE ist, wird ausgeführt. In PHP 3 können Sie mit dem gleichen Effekt auch „else if“ (als zwei Wörter geschrieben) und „elseif“ (als ein Wort geschrieben) schreiben. Dies ist nur ein kleiner Unterschied in der Schreibweise (wenn Sie mit C vertraut sind, ist es dasselbe), das Ergebnis ist genau das gleiche.
Die ELSEIF-Anweisung wird nur ausgeführt, wenn der IF-Ausdruck und jeder vorangehende ELSEIF-Ausdruck FALSE sind und der aktuelle ELSEIF-Ausdruck TRUE ist.
Das Folgende ist eine IF-Anweisung in einem verschachtelten Format, das ELSEIF und ELSE enthält:
if ($a==5): print "a equals 5"; print "..."; elseif ($a==6): print "a equals 6"; print "!!!"; else: print "a is neither 5 nor 6"; endif;
4. WHILE-Anweisung
Die WHILE-Schleife ist eine einfache Schleife in PHP 3. Genau wie in C. Das Grundformat der WHILE-Anweisung ist:
WHILE(expr)-Anweisung
Die Bedeutung der WHILE-Anweisung ist sehr einfach. Es weist PHP an, die verschachtelte Anweisung wiederholt auszuführen, solange der WHILE-Ausdruck TRUE ist. Der Wert des WHILE-Ausdrucks wird am Anfang jeder Schleife überprüft. Selbst wenn sein Wert innerhalb der verschachtelten Anweisung geändert wird, wird diese Ausführung also erst am Ende der Schleife beendet (jedes Mal, wenn PHP eine verschachtelte Anweisung ausführt, wird dies als Schleife bezeichnet). ). Ähnlich wie bei der IF-Anweisung können Sie geschweifte Klammern verwenden, um eine Gruppe von Anweisungen einzuschließen und mehrere Anweisungen in derselben WHILE-Schleife auszuführen:
WHILE(expr): Anweisung ...
Die folgenden Beispiele sind genau das Geben Sie die Zahlen 1 bis 10 ein:
/* example 1 */ $i=1; while ($i<=10) { print $i++; /* the printed value would be $i before the increment (post- increment) */ } /* example 2 */ $i=1; while ($i<=10): print $i; $i++; endwhile;
5. DO..WHILE-Anweisung
DO..WHILE ist der WHILE-Schleife sehr ähnlich, außer dass sie den Ausdruck überprüft Das Ende jeder Schleife ist wahr, nicht der Anfang der Schleife. Der Hauptunterschied zwischen ihr und einer strikten WHILE-Schleife besteht darin, dass die erste Schleife von DO..WHILE ausgeführt werden muss (der Wahrheitsausdruck wird nur am Ende der Schleife überprüft), und nicht eine strikte WHILE-Schleife (überprüft am Anfang). (jede Schleife) Wahrheitsausdruck, wenn er am Anfang FALSE ist, beendet die Schleife die Ausführung sofort). wird nur einmal ausgeführt, da der erste Nach einer Schleife, wenn der Wahrheitsausdruck überprüft wird, er als FALSE ausgewertet wird ($i ist nicht größer als 0) und die Schleifenausführung beendet wird.
6. FOR-Schleifenanweisung
$i = 0; do { print $i; } while ($i>0);FOR (Ausdruck1; Ausdruck2; Ausdruck3)-Anweisung
Der erste Ausdruck (Ausdruck1) wird am Anfang der Schleife bedingungslos ausgewertet (ausgeführt).
Bei jedem Schleifendurchlauf wird der Ausdruck expr2 ausgewertet. Wenn das Ergebnis TRUE ist, werden Schleifen und verschachtelte Anweisungen weiterhin ausgeführt. Wenn das Ergebnis FALSE ist, endet die gesamte Schleife.
Am Ende jeder Schleife wird expr3 ausgewertet (ausgeführt). Jeder Ausdruck kann null sein. Wenn expr2 leer ist, ist die Anzahl der Schleifen variabel (PHP ist standardmäßig TRUE, wie C). Tun Sie dies nicht, es sei denn, Sie möchten die Schleife mit einer bedingten BREAK-Anweisung anstelle des FOR-Wahrheitsausdrucks beenden.
Betrachten Sie das folgende Beispiel. Sie alle zeigen die Zahlen 1 bis 10:
/* example 1 */ for ($i=1; $i<=10; $i++) { print $i; } /* example 2 */ for ($i = 1;;$i++) { if ($i >10) { break; } print $i; } /* example 3 */ $i = 1; for (;;) { if ($i >10) { break; } print $i; $i++; }
当然,第一个例子显然是最好的,但借此你可以发现在FOR 循环中很多场合可以使用空的表达式。
其他的语言有一条foreach语句用来遍历一个数组或哈希(hash)表。PHP使用while语句和 list()、each() 函数来达到这个功能。
7、 SWITCH选择语句
SWITCH语句就象是对同一个表达式的一系列IF语句。在很多时侯,你想把同一个变量(或者表达式)和许多不同的值去比较 ,并根据不同的比较结果执行不同的程序段。这就是 SWITCH语句的用处了。
下面两个例子通过不同的方法做同一件事,一个用一组 IF语句,另外一个用 SWITCH 语句:
/* example 1 */ if ($i == 0) { print "i equals 0"; } if ($i == 1) { print "i equals 1"; } if ($i == 2) { print "i equals 2"; } /* example 2 */ switch ($i) { case 0: print "i equals 0"; break; case 1: print "i equals 1"; break; case 2: print "i equals 2"; break; }
(二)、REQUIRE语句
REQUIRE语句用指定的文件代替自己,很象 C 中的预处理 #include 。
这意味着你不能为了每次调用该函数来包含不同文件的内容,而把require()语句放在一个循环结构,。要这么做,使用 INCLUDE 语句。
require(’header.inc’);
(三)、 INCLUDE语句
INCLUDE语句包含指定的文件。
每次遇到INCLUDE是INCLUDE语句就包含指定的文件。所以你可以在一个循环结构中使用INCLUDE语句以包含一系列不同的文件。
$files = array(’first.inc’, ’second.inc’, ’third.inc’); for ($i = 0; $i < count($files); $i++) { include($files[$i]); }
(四)、 函数
可以通过以下的语法定义函数:
function foo( $arg_1, $arg_2, ..., $arg_n ) { echo "Example function.n"; return $retval; }
函数中可以使用任何有效的PHP3 代码,甚至是其他的函数或类 的定义
1、 函数返回值
函数可以通过可选的return语句返回值。返回值可以是任何类型,包括列表和对象。
function my_sqrt( $num ) { return $num * $num; } echo my_sqrt( 4 ); // outputs ’16’.
函数不能同时返回多个值,但可以通过返回列表的方法来实现:
function foo() { return array( 0, 1, 2 ); } list( $zero, $one, $two ) = foo();
2、 参数
外部信息可以通过参数表来传入函数中;参数表就是一系列逗号分隔的变量和/或常量。
PHP3支持通过值形参数(默认), 变量参数,和 默认参数。不支持变长参数表, 但可以用传送数组的方法来实现。
3、 关联参数
默认情况函数参数是传值方式。如果你允许函数修改传入参数的值,你可以使用变量参数。
如果你希望函数的一个形式参数始终是变量参数,你可以在函数定义时给该形式参数加(&)前缀:
function foo( &$bar ) { $bar .= ’ and something extra.’; } $str = ’This is a string, ’; foo( $str ); echo $str; // outputs ’This is a string, and something extra.’ 如果要传递一个可变参数给默认的函数(其形式参数不是变参方式),你可以在调用函数时给实际参数加(&)前缀: function foo( $bar ) { $bar .= ’ and something extra.’; } $str = ’This is a string, ’; foo( $str ); echo $str; // outputs ’This is a string, ’ foo( &$str ); echo $str; // outputs ’This is a string, and something extra.’
4、 默认值
函数可以定义 C++ 风格的默认值,如下:
function makecoffee( $type = "cappucino" ) { echo "Making a cup of $type.n"; } echo makecoffee(); echo makecoffee( "espresso" );
上边这段代码的输出是:
Making a cup of cappucino.
Making a cup of espresso.
注意,当使用默认参数时,所有有默认值的参数应在无默认值的参数的后边定义;否则,将不会按所想的那样工作。
5、CLASS(类)
类是一系列变量和函数的集合。类用以下语法定义:
<?php class Cart { var $items; // Items in our shopping cart // Add $num articles of $artnr to the cart function add_item($artnr, $num) { $this->items[$artnr] += $num; } // Take $num articles of $artnr out of the cart function remove_item($artnr, $num) { if ($this->items[$artnr] >$num) { $this->items[$artnr] -= $num; return true; } else { return false; } } } ?>
上面定义了一个叫Cart 的类,其中包括一个关联数组和两个用来从cart中增加和删除项目的函数。
类是实际变量的原始模型。你要通过new 操作符来建立一个所需类型的变量。
$cart = new Cart;
$cart->add_item("10", 1);
这建立起一个 Cart类的对象$cart。该对象的函数add_item()被调用来给第10项加 1。
类可以从其他的类扩充得到。扩充或派生出来的类拥有基类的所有变量和函数及你在扩充定义中所定义的东西。这要使用 extends 关键字。
class Named_Cart extends Cart { var $owner; function set_owner($name) { $this->owner = $name; } }
这里定义了一个名为 Named_Cart 的类它继承了 Cart类所有变量和函数并增加了一个变量 $owner和一个函数 set_owner()。 你建立的 named_cart 类的变量现在就能设置carts 的 owner了。在named_cart变量中你仍然可以使用一般的 cart函数:
$ncart = new Named_Cart; // Create a named cart
$ncart->set_owner("kris"); // Name that cart
print $ncart->owner; // print the cart owners name
$ncart->add_item("10", 1); // (inherited functionality from cart)
函数中的变量 $this 意思是当前的对象。你需要使用 $this->something 的形式来存取所有当前对象的变量或函数。
类中的构造器是你建立某种类的新变量时自动被调用的函数。类中和类名一样的函数就是构造器。
class Auto_Cart extends Cart { function Auto_Cart() { $this->add_item("10", 1); } }
这里定义一个类 Auto_Cart ,它给 Cart类加了一个每次new操作时设置项目10进行变量初始化的构造器。构造器也可以有参数,这些参数是可选的,这种特点也使得其十分有用。
class Constructor_Cart { function Constructor_Cart($item = "10", $num = 1) { $this->add_item($item, $num); } } // Shop the same old boring stuff. $default_cart = new Constructor_Cart; // Shop for real... $different_cart = new Constructor_Cart("20", 17);
Das obige ist der detaillierte Inhalt vonLernen Sie grundlegende Beispiele für PHP-Flusskontrollanweisungen (einschließlich Funktionen und Klassen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!