–
۱۵. عبارات شرطی
- دستور if – اگر یک شرط درست باشد، کدی را اجرا می کند
- دستور if…else – در صورت صحیح بودن یک شرط، کدی را اجرا می کند و اگر آن شرط نادرست باشد، کد دیگری را اجرا می کند.
-
دستور if…elseif…else – کدهای مختلف را برای بیش از دو شرط اجرا می کند.
-
عبارت switch – یکی از بلوک های متعدد کد را برای اجرا انتخاب می کند.
دستور if
if (condition) {
code to be executed if condition is true;
}
مثال:
<?php
$t = date("H");
if ($t < "20") {
echo "Have a good day!";
}
?>

!Have a good day
دستور if…else
if (condition) {
code to be executed if condition is true;
} else {
code to be executed if condition is false;
}
مثال:
<?php
$t = date("H");
if ($t < "20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
?>

Have a good day!
if…elseif…else
سینتکس:
if (condition) {
code to be executed if this condition is true;
} elseif (condition) {
code to be executed if first condition is false and this condition is true;
} else {
code to be executed if all conditions are false;
}
مثال:
<?php
$t = date("H");
if ($t < "10") {
echo "Have a good morning!";
} elseif ($t < "20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
?>

Have a good day!
دستور switch…case
سینتکس:
switch (n) {
case label1:
code to be executed if n=label1;
break;
case label2:
code to be executed if n=label2;
break;
case label3:
code to be executed if n=label3;
break;
...
default:
code to be executed if n is different from all labels;
}
<?php
$favcolor = "red";
switch ($favcolor) {
case "red":
echo "Your favorite color is
red!";
break;
case "blue":
echo "Your favorite color is
blue!";
break;
case "green":
echo "Your favorite color is
green!";
break;
default:
echo "Your favorite color is
neither red, blue, nor green!";
}
?>

Your favorite color is red!
–
۱۶. حلقه ها
- while – تا زمانی که شرط مشخص شده درست باشد از طریق یک بلوک کد حلقه می زند.
-
do…while – یک بار از طریق یک بلوک کد حلقه می زند و تا زمانی که شرط مشخص شده درست باشد. حلقه را تکرار می کند.
-
for – از طریق یک بلوک کد به تعداد مشخصی بارها حلقه می زند.
-
foreach – از طریق یک بلوک کد برای هر عنصر در یک آرایه حلقه می زند.
حلقه while
سینتکس:
while (condition is true) {
code to be executed;
}
مثال۱:
<?php
$x = 1;
while($x <= 5) {
echo "The number is: $x <br>";
$x++;
}
?>

The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5
- 1 = x$ شمارنده حلقه (x$) را مقداردهی کرده و مقدار شروع را 1 قرار می دهد.
-
5 => x$ تا زمانی که x$ کمتر یا مساوی 5 باشد، حلقه را ادامه می دهد.
-
++x$ مقدار شمارنده حلقه را برای هر تکرار 1 واحد افزایش می دهد.
مثال۲:
<?php
$x = 0;
while($x <= 100) {
echo "The number is: $x <br>";
$x+=10;
}
?>

The number is: 0
The number is: 10
The number is: 20
The number is: 30
The number is: 40
The number is: 50
The number is: 60
The number is: 70
The number is: 80
The number is: 90
The number is: 100
حلقه do…while
do {
code to be executed;
} while (condition is true);
مثال:
<?php
$x = 1;
do {
echo "The number is: $x <br>";
$x++;
} while ($x <= 5);
?>

The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5
توجه: در یک حلقه do…while، پس از اجرای دستورات درون حلقه، شرط تست می شود. این بدان معناست که حلقه do…while حداقل یک بار دستورات خود را اجرا می کند، حتی اگر شرط نادرست باشد. مثال زیر را ببینید.
<?php
$x = 6;
do {
echo "The number is: $x <br>";
$x++;
} while ($x <= 5);
?>

The number is: 6
حلقه for
for (init counter; test counter; increment counter) {
code to be executed for each iteration;
}
پارامترها:
-
init counter: مقدار شمارنده حلقه را مقدار دهی اولیه کنید.
-
شمارنده تست: برای هر تکرار حلقه ارزیابی می شود. اگر به TRUE ارزیابی شود، حلقه ادامه می یابد. اگر به FALSE ارزیابی شود، حلقه به پایان می رسد.
-
increment counter: مقدار شمارنده حلقه را افزایش می دهد.
<?php
for ($x = 0; $x <= 10; $x++) {
echo "The number is: $x <br>";
}
?>

The number is: 0
The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5
The number is: 6
The number is: 7
The number is: 8
The number is: 9
The number is: 10
- 0 = x$ شمارنده حلقه (x$) را مقداردهی کرده و مقدار شروع را 0 قرار می دهد.
-
10 => x$ تا زمانی که x$ کمتر یا مساوی 10 باشد، حلقه را ادامه می دهد.
-
++x$ مقدار شمارنده حلقه را برای هر تکرار 1 واحد افزایش می دهد.
<?php
for ($x = 0; $x <= 100; $x+=10) {
echo "The number is: $x <br>";
}
?>

The number is: 0
The number is: 10
The number is: 20
The number is: 30
The number is: 40
The number is: 50
The number is: 60
The number is: 70
The number is: 80
The number is: 90
The number is: 100
- 0 = x$ شمارنده حلقه (x$) را مقداردهی کرده و مقدار شروع را 0 قرار می دهد.
-
100 => x$ تا زمانی که x$ کمتر یا مساوی 100 باشد، حلقه را ادامه می دهد.
-
++x$ مقدار شمارنده حلقه را برای هر تکرار 10 واحد افزایش می دهد.
حلقه foreach
foreach ($array as $value) {
code to be executed;
}
مثال۱:
<?php
$colors = array("red", "green",
"blue", "yellow");
foreach ($colors as $value) {
echo "$value <br>";
}
?>

red
green
blue
yellow
مثال۲:
<?php
$age = array("Peter"=>"35",
"Ben"=>"37", "Joe"=>"43");
foreach($age as $x => $val) {
echo "$x = $val<br>";
}
?>

Peter = 35
Ben = 37
Joe = 43
–
۱۷. Break و Continue
Break
در مثال زیر زمانی از حلقه خارج می شود که x برابر با 4 باشد:
<?php
for ($x = 0; $x < 10; $x++) {
if ($x == 4) {
break;
}
echo "The number is: $x <br>";
}
?>

The number is: 0
The number is: 1
The number is: 2
The number is: 3
Continue
<?php
for ($x = 0; $x < 10; $x++) {
if ($x == 4) {
continue;
}
echo "The number is: $x <br>";
}
?>

The number is: 0
The number is: 1
The number is: 2
The number is: 3
The number is: 5
The number is: 6
The number is: 7
The number is: 8
The number is: 9
Break و Continue در حلقه While
مثال Break:
<?php
$x = 0;
while($x < 10) {
if ($x == 4) {
break;
}
echo "The number is: $x <br>";
$x++;
}
?>

The number is: 0
The number is: 1
The number is: 2
The number is: 3
مثال Continue:
<?php
$x = 0;
while($x < 10) {
if ($x == 4) {
$x++;
continue;
}
echo "The number is: $x <br>";
$x++;
}
?>

The number is: 0
The number is: 1
The number is: 2
The number is: 3
The number is: 5
The number is: 6
The number is: 7
The number is: 8
The number is: 9
–
۱۸. توابع یا Functions
توابع داخلی php
توابع تعریف شده توسط کاربر
-
تابع بلوکی از دستورات است که می تواند به طور مکرر در یک برنامه استفاده شود.
-
هنگام بارگیری صفحه، یک تابع به طور خودکار اجرا نمی شود.
-
یک تابع با فراخوانی تابع اجرا خواهد شد.
function functionName() {
code to be executed;
}
توجه: نام تابع باید با یک حرف یا زیرخط شروع شود. نام توابع به حروف بزرگ و کوچک حساس نیستند.
<?php
function writeMsg() {
echo "Hello world!";
}
writeMsg();
?>

Hello world!
آرگومان های تابع PHP
<?php
function familyName($fname) {
echo "$fname Refsnes.<br>";
}
familyName("Jani");
familyName("Hege");
familyName("Stale");
familyName("Kai Jim");
familyName("Borge");
?>

Jani Refsnes.
Hege Refsnes.
Stale Refsnes.
Kai Jim Refsnes.
Borge Refsnes.
<?php
function familyName($fname, $year) {
echo "$fname Refsnes. Born in $year <br>";
}
familyName("Hege","1975");
familyName("Stale","1978");
familyName("Kai Jim","1983");
?>

Hege Refsnes. Born in 1975
Stale Refsnes. Born in 1978
Kai Jim Refsnes. Born in 1983
PHP یک زبان تایپ آزاد است
<?php
function addNumbers( $a, $b) {
return $a + $b;
}
echo addNumbers(5, "5 days");
// since strict is NOT enabled "5 days" is changed to int(5), and
// it will return 10
?>

10
<?php declare(strict_types=1); // strict requirement
function addNumbers(int $a, int $b) {
return $a + $b;
}
echo addNumbers(5, "5 days");
// since strict is enabled and "5 days" is not an integer, an
// error will be thrown
?>

PHP Fatal error: Uncaught TypeError: Argument 2 passed to addNumbers() must be of the type integer, string given, called in /home/bWN0Ml/prog.php on line 6 and defined in /home/bWN0Ml/prog.php:3 Stack trace: #0 /home/bWN0Ml/prog.php(6): addNumbers(5, ‘5 days’) #1 {main} thrown in /home/bWN0Ml/prog.php on line 3
نکته: اعلان سختگیرانه ( strict declaration ) اشیاء را مجبور می کند که به روش مورد نظر استفاده شوند.
مقدار آرگومان پیش فرض در PHP
<?php declare(strict_types=1); // strict requirement
function setHeight(int $minheight = 50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight();
setHeight(135);
setHeight(80);
?>

The height is : 350
The height is : 50
The height is : 135
The height is : 80
برگرداندن مقادیر در توابع PHP
<?php declare(strict_types=1); // strict requirement ?>
<!DOCTYPE html>
<html>
<body>
<?php
function sum(int $x, int $y) {
$z = $x + $y;
return $z;
}
echo "5 + 10 = " . sum(5,10) . "<br>";
echo "7 + 13 = " . sum(7,13) . "<br>";
echo "2 + 4 = " . sum(2,4);
?>
</body>
</html>

5 + 10 = 15
7 + 13 = 20
2 + 4 = 6
اعلان های Return Type
<?php declare(strict_types=1); // strict requirement
function addNumbers(float $a, float $b) : float {
return $a + $b;
}
echo addNumbers(1.2, 5.2);
?>

6.4
<?php declare(strict_types=1); // strict requirement
function addNumbers(float $a, float $b) : int {
return (int)($a + $b);
}
echo addNumbers(1.2, 5.2);
?>

6
ارسال آرگومان ها با مرجع
7

<?php
function add_five(&$value) {
$value += 5;
}
$num = 2;
add_five($num);
echo $num;
?>
<?php
function add_five(&$value) {
$value += 5;
}
$num = 2;
add_five($num);
echo $num;
?>

7
–
۱۹. آرایه ها
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>

I like Volvo, BMW and Toyota.
آرایه چیست؟
$cars1 = "Volvo";
$cars2 = "BMW";
$cars3 = "Toyota";
ساخت یک آرایه در PHP
array();
- آرایه های نمایه شده ( Indexed Arrays ) – آرایه هایی با شاخص عددی
-
آرایه های انجمنی ( Associative arrays ) – آرایه هایی با کلیدهای نامگذاری شده
-
آرایه های چند بعدی ( Multidimensional arrays ) – آرایه هایی حاوی یک یا چند آرایه
دریافت طول آرایه با تابع ()count
<?php
$cars = array("Volvo", "BMW",
"Toyota");
echo count($cars);
?>

3
آرایه های نمایه شده ( Indexed Arrays )
$cars = array("Volvo", "BMW", "Toyota");
$cars[0] = "Volvo";
$cars[1] = "BMW";
$cars[2] = "Toyota";
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>

I like Volvo, BMW and Toyota.
اجرای حلقه از طریق یک آرایه نمایه شده
<?php
$cars = array("Volvo", "BMW", "Toyota");
$arrlength = count($cars);
for($x = 0; $x < $arrlength; $x++) {
echo $cars[$x];
echo "<br>";
}
?>

Volvo
BMW
Toyota
آرایه های انجمنی ( Associative arrays )
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
یا
$age['Peter'] = "35";
$age['Ben'] = "37";
$age['Joe'] = "43";
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>

Peter is 35 years old.
اجرای حلقه از طریق یک آرایه انجمنی
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
foreach($age as $x => $x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>

Key=Peter, Value=35
Key=Ben, Value=37
Key=Joe, Value=43
آرایه های چند بعدی ( Multidimensional Arrays )
-
برای یک آرایه دو بعدی برای انتخاب یک عنصر به دو شاخص نیاز دارید
-
برای یک آرایه سه بعدی برای انتخاب یک عنصر به سه شاخص نیاز دارید
آرایه های دو بعدی
نام | موجودی | فروخته شده |
Volvo | 22 | 18 |
BMW | 15 | 13 |
Saab | 5 | 2 |
Land Rover | 17 | 15 |
$cars = array (
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
<?php
$cars = array (
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
echo $cars[0][0].": In stock: ".$cars[0][1].", sold: ".$cars[0][2].".<br>";
echo $cars[1][0].": In stock: ".$cars[1][1].", sold: ".$cars[1][2].".<br>";
echo $cars[2][0].": In stock: ".$cars[2][1].", sold: ".$cars[2][2].".<br>";
echo $cars[3][0].": In stock: ".$cars[3][1].", sold: ".$cars[3][2].".<br>";
?>

Volvo: In stock: 22, sold: 18.
BMW: In stock: 15, sold: 13.
Saab: In stock: 5, sold: 2.
Land Rover: In stock: 17, sold: 15.
<?php
$cars = array (
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
for ($row = 0; $row < 4; $row++) {
echo "<p><b>Row number $row</b></p>";
echo "<ul>";
for ($col = 0; $col < 3; $col++) {
echo "<li>".$cars[$row][$col]."</li>";
}
echo "</ul>";
}
?>

Row number 0
• Volvo
• 22
• 18
Row number 1
• BMW
• 15
• 13
Row number 2
• Saab
• 5
• 2
Row number 3
• Land Rover
• 17
• 15
مرتب سازی آرایه ها
توابع مرتب سازی برای آرایه ها
-
()sort آرایه ها را به ترتیب صعودی مرتب می کند
-
()rsort آرایه ها را به ترتیب نزولی مرتب می کند
-
()asort آرایه های انجمنی را بر اساس مقدار به ترتیب صعودی مرتب می کند
-
()ksort آرایه های انجمنی را طبق کلید به ترتیب صعودی مرتب می کند
-
()arsort آرایه های انجمنی را بر اساس مقدار به ترتیب نزولی مرتب می کند
-
()krsort آرایه های انجمنی را طبق کلید به ترتیب نزولی مرتب می کند
()sort مرتب سازی آرایه به ترتیب صعودی
<?php
$cars = array("Volvo", "BMW", "Toyota");
sort($cars);
$clength = count($cars);
for($x = 0; $x < $clength; $x++) {
echo $cars[$x];
echo "<br>";
}
?>

BMW
Toyota
Volvo
<?php
$numbers = array(4, 6, 2, 22, 11);
sort($numbers);
$arrlength = count($numbers);
for($x = 0; $x < $arrlength; $x++) {
echo $numbers[$x];
echo "<br>";
}
?>

2
4
6
11
22
()rsort مرتب سازی آرایه به ترتیب نزولی
<?php
$cars = array("Volvo", "BMW", "Toyota");
rsort($cars);
$clength = count($cars);
for($x = 0; $x < $clength; $x++) {
echo $cars[$x];
echo "<br>";
}
?>

Volvo
Toyota
BMW
<?php
$numbers = array(4, 6, 2, 22, 11);
rsort($numbers);
$arrlength = count($numbers);
for($x = 0; $x < $arrlength; $x++) {
echo $numbers[$x];
echo "<br>";
}
?>

22
11
6
4
2
()asort مرتب سازی آرایه (ترتیب صعودی)، بر اساس مقدار
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
asort($age);
foreach($age as $x => $x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>

Key=Peter, Value=35
Key=Ben, Value=37
Key=Joe, Value=43
()ksort مرتب سازی آرایه (ترتیب صعودی)، بر اساس کلید
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
ksort($age);
foreach($age as $x => $x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>

Key=Ben, Value=37
Key=Joe, Value=43
Key=Peter, Value=35
()arsort مرتب سازی آرایه (ترتیب نزولی)، بر اساس مقدار
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
arsort($age);
foreach($age as $x => $x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>

Key=Joe, Value=43
Key=Ben, Value=37
Key=Peter, Value=35
()krsort مرتب سازی آرایه (ترتیب نزولی)، بر اساس کلید
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
krsort($age);
foreach($age as $x => $x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>

Key=Peter, Value=35
Key=Joe, Value=43
Key=Ben, Value=37
منبع:
w3schools.com