Chapterبەش 6 · Lectureوانە 6.1

Conditional Statements: if, else, elseif and switchڕستە مەرجییەکان: if و else و elseif و switch

How a PHP program makes decisions: conditions and comparison operators, if, if...else, if...elseif...else, logical operators, isset()/unset(), and switch with break and fall-through.

PHP چۆن بڕیار دەدات: و ، if، if...else، if...elseif...else، ، isset()/unset() و switch لەگەڵ break و .

33 min read32 خولەک خوێندنەوە · 30 stepsهەنگاو

What you will learnچی فێر دەبیت

  • Write conditions with comparison operators, including === and !==.
  • Use if, if...else and if...elseif...else correctly, with braces.
  • Join conditions with &&, || and !.
  • Check whether a variable is set with isset() and remove it with unset().
  • Write a switch with break and default, and predict fall-through.
  • Choose between if...else and switch.
  • بە بنووسیت، لەوانە === و !==.
  • if و if...else و if...elseif...else بە دروستی و بە کەوانەی لوولی بەکاربهێنیت.
  • بە && و || و ! پێکەوە ببەستیت.
  • بە isset() بپشکنیت ئایا هەیە و بە unset() بیسڕیتەوە.
  • switchێک بە break و default بنووسیت و پێشبینی بکەیت.
  • لە نێوان if...else و switchدا هەڵبژێریت.

Why programs need to make decisionsبۆچی بەرنامەکان پێویستیان بە بڕیاردانە

Until now, PHP ran your code from the first line to the last line, every time. Real web pages must do more. They must react to the situation: show a welcome message only to a user who logged in, print Pass or Fail from a mark, or show an error when a form field is empty.

تا ئێستا PHP کۆدەکەت هەموو جارێک لە یەکەم دێڕەوە تا کۆتا دێڕ جێبەجێ دەکرد. بەڵام لە ژیانی ڕاستەقینەدا دەبێت زیاتر بکەن. دەبێت بەپێی بارودۆخەکە کاردانەوەیان هەبێت: پەیامی بەخێرهاتن تەنها بۆ ئەو پیشان بدەن کە چووەتە ژوورەوە، بەپێی نمرەیەک دەرچوو یان کەوتوو بنووسن، یان کاتێک بەتاڵە پیشان بدەن.

You do this with . A conditional statement checks a . Then it runs different code for different conditions. Every programming language has this idea: it is selection, one of the three that every is built from (three building blocks); the on this page use the symbols from Flowchart symbols.

ئەم کارە بە دەکرێت. دەپشکنێت، پاشان بۆ هەر کۆدێکی جیاواز جێبەجێ دەکات. هەموو ئەم بیرۆکەیەی هەیە: پێی دەوترێت هەڵبژاردن و یەکێکە لە سێ هەموو (سێ بەردی بناغە)؛ ئەم لاپەڕەیە ئەو هێمایانە بەکار دەهێنن کە لە هێماکانی هێڵکاریی ڕەوت ڕوون کراونەتەوە.

A traffic lightگڵۆپی هاتوچۆ

Think of a taxi driver in Erbil at a traffic light. If the light is green, he drives on. Else if it is yellow, he slows down. Else (the light is red), he stops. He checks the light, and his action depends on the answer. PHP decisions work the same way.

شۆفێرێکی تەکسی لە هەولێر بهێنە پێش چاوت کە گەیشتووەتە گڵۆپی هاتوچۆ. ئەگەر گڵۆپەکە سەوز بێت، دەڕوات. ئەگەرنا ئەگەر زەرد بێت، خێرایی کەم دەکاتەوە. ئەگەرنا (گڵۆپەکە سوورە)، دەوەستێت. سەیری گڵۆپەکە دەکات و کارەکەی بەپێی ئەوەی دەیبینێت دەگۆڕێت. بڕیاردان لە PHP هەر بەم شێوەیە کار دەکات.

Where the analogy stops workingسنووری ئەم نموونەیە

A driver can think about many things at once. PHP checks its conditions one by one, from top to bottom, and each condition can only be true or false.

شۆفێر دەتوانێت لە یەک کاتدا بیر لە چەند شتێک بکاتەوە. بەڵام PHP یەک لە دوای یەک، لە سەرەوە بۆ خوارەوە، دەپشکنێت و هەر تەنها دەتوانێت true یان false بێت.

PHP has four kinds of conditional statements:

PHP چوار جۆر هەیە:

  • if statement – runs some code if one condition is true.
  • if...else statement – runs some code if a condition is true, and other code if that condition is false.
  • if...elseif...else statement – runs different code for more than two conditions.
  • switch statement – selects one of many blocks of code to run, based on one value.
  • – کۆدێک جێبەجێ دەکات ئەگەر ڕاست بێت.
  • if...else – کۆدێک جێبەجێ دەکات ئەگەر ڕاست بێت و کۆدێکی تر ئەگەر هەمان هەڵە بێت.
  • if...elseif...else – بۆ زیاتر لە دوو ، کۆدی جیاواز جێبەجێ دەکات.
  • – بەپێی یەک ، یەکێک لە چەندین هەڵدەبژێرێت و جێبەجێی دەکات.

PHP 8 also has short forms: the ?:, the ?? operator and the match expression. They are optional extra knowledge; see Extra: short ways to decide.

⁦PHP 8⁩ چەند شێوەیەکی کورتیشی هەیە: ?:، ?? و match. ئەمانە زانیاریی زیادەن؛ سەیری زیادە: ڕێگای کورت بۆ بڕیاردان بکە.

PHP for beginners [ Kurdish ] - 5 - پی ئێچ پی بۆ ئاستی سەرەتاییK97 Media · Kurdish (Sorani)کوردی (سۆرانی) · 3K viewsبینین · 86 likesلایک

A lesson in Kurdish (Sorani) on conditions: what they are, why programs need them, and how to write them in PHP.

وانەیەک بە کوردیی سۆرانی: چییە، بۆچی پێویستیان پێیەتی و چۆن لە دەینووسین.

Kurdish (Sorani) introduction to conditions in PHP.

ناساندنی لە ، بە کوردیی سۆرانی.

Conditions: questions with a true or false answerمەرج: پرسیارێک کە وەڵامەکەی ڕاست یان هەڵەیە

A is a question that PHP can answer with only true or false. For example: Is $a larger than $b? In code, a condition is an inside parentheses: ($a > $b).

پرسیارێکە کە PHP تەنها بە ڕاست (true) یان هەڵە (false) وەڵامی دەداتەوە. بۆ نموونە: ئایا $a لە $b گەورەترە؟ لە کۆددا، لەناو کەوانەدا: ($a > $b).

A condition usually compares that are stored in . Here is a small warm-up: two variables and their values.

زۆرجار ئەو بەراورد دەکات کە لە هەڵگیراون. ئەمە گەرمکردنەوەیەکی بچووکە: دوو و .

Warm-up: values stored in variablesگەرمکردنەوە: نرخ لەناو گۆڕاوداwarmup.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $var1 = 10;
    echo $var1;
    echo "<br>";

    $var2 = "Hello World";
    echo $var2;
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 2-3

$var1 holds the 10. echo prints it.

$var1 هەڵدەگرێت ⁦(10)⁩. echo چاپی دەکات.

Lineدێڕی 6-7

$var2 holds the Hello World.

$var2 هەڵدەگرێت: Hello World.

Now let PHP answer some questions. The var_dump() shows the answer and its type. The answer is a value: true or false.

ئێستا با چەند پرسیارێک لە PHP بکەین. var_dump() وەڵامەکە و جۆرەکەی پیشان دەدات. وەڵامەکە : true یان false.

Every condition gives true or falseهەموو مەرجێک true یان false دەداتtrue-false.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $age = 20;

    var_dump($age > 18);    // is 20 greater than 18?
    var_dump($age == 25);   // is 20 equal to 25?
    var_dump($age != 25);   // is 20 not equal to 25?
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 4

20 is greater than 18, so the answer is true.

⁦20⁩ لە ⁦18⁩ گەورەترە، بۆیە وەڵامەکە trueـە.

Lineدێڕی 5

== asks "are they equal?". 20 is not 25, so the answer is false.

== دەپرسێت «ئایا یەکسانن؟». ⁦20⁩ یەکسان نییە بە ⁦25⁩، بۆیە وەڵامەکە falseـە.

Lineدێڕی 6

!= asks "are they different?". They are different, so true.

!= دەپرسێت «ئایا جیاوازن؟». جیاوازن، بۆیە وەڵامەکە trueـە.

Conditions: questions with a true or false answerمەرج: پرسیارێک کە وەڵامەکەی ڕاست یان هەڵەیە

Comparison operatorsکارپێکەرەکانی بەراوردکردن

The symbols that build conditions are called . These are the ones you will use most:

ئەو هێمایانەی دروست دەکەن پێیان دەوترێت . ئەمانە ئەوانەن کە زۆرتر بەکاریان دەهێنیت:

Comparison operators used in conditions کە لە بەکاردێن
OperatorMeaningواتاExample ($a = 5)نموونە ($a = 5)Resultئەنجام
>greater thanگەورەترە لە$a > 3true
>=greater than or equal toگەورەترە یان یەکسانە بە$a >= 5true
<less thanبچووکترە لە$a < 3false
<=less than or equal toبچووکترە یان یەکسانە بە$a <= 4false
==equal value یەکسانە$a == "5"true
!=not equal value (also written <>) یەکسان نییە (بە <>یش دەنووسرێت)$a != 7true
===identical: equal value and same typeوەک یەک: و جۆریان یەکسانە$a === "5"false
!==not identical: different value or different typeوەک یەک نین: یان جۆریان جیاوازە$a !== "5"true
== compares values, === also compares types== نرخ بەراورد دەکات، === جۆریش بەراورد دەکاتidentical.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    var_dump("5" == 5);    // same value?
    var_dump("5" === 5);   // same value AND same type?
    var_dump("5" != 5);    // different value?
    var_dump("5" !== 5);   // different value OR different type?
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 2

"5" is a and 5 is an . == changes the string to a number first, so they are equal.

"5" و 5 . == سەرەتا دەگۆڕێت بۆ ژمارە، بۆیە یەکسان دەبن.

Lineدێڕی 3

=== does not change types. A string is not an integer, so the answer is false.

=== جۆرەکان ناگۆڕێت. و یەک جۆر نین، بۆیە وەڵامەکە falseـە.

Lineدێڕی 5

!== is the opposite of ===.

!== پێچەوانەی ===ـە.

Quick checkپشکنینی خێرا$a = 5; Which of these conditions is false?$a = 5; کام لەم هەڵەیە؟

Conditions: questions with a true or false answerمەرج: پرسیارێک کە وەڵامەکەی ڕاست یان هەڵەیە

Comparing text: capital letters matterبەراوردکردنی دەق: پیتی گەورە و بچووک گرنگە

When == compares two , it is . For PHP, "No" and "no" are two different strings. A student found this problem in a small program. We rewrite it here with neutral words. The program should answer in Kurdish, Bale (yes) or Na (no).

کاتێک == دوو بەراورد دەکات، . بۆ PHP، "No" و "no" دوو جیاوازن. خوێندکارێک ئەم کێشەیەی لە بچووکدا دۆزییەوە. لێرەدا بە وشەی ئاسایی دووبارە دەینووسینەوە. دەبێت بە کوردی بڵێت Bale (بەڵێ) یان Na (نەخێر).

Why is "no" not recognised?بۆچی "no" ناناسرێتەوە؟answer.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $answer = "no";

    if ($answer == "Yes") {
        echo "Bale";
    } elseif ($answer == "No") {
        echo "Na";
    } else {
        echo "Please write Yes or No";
    }
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 2

The user typed no with a small n.

noی بە nی بچووک نووسیوە.

Lineدێڕی 6

"no" == "No" is false, because n and N are different letters.

"no" == "No" هەڵەیە (false)، چونکە n و N دوو پیتی جیاوازن.

Lineدێڕی 8-9

No condition was true, so the else block runs.

هیچ ڕاست نەبوو، بۆیە بلۆکی else جێبەجێ دەبێت.

The fix: make the letters the same case before you compare. The strtolower() changes all letters to small letters. Another way is strcasecmp(), which compares two strings and ignores case. It returns 0 when they are equal.

چارەسەر: پێش بەراوردکردن، پیتەکان وەک یەکیان لێ بکە. strtolower() هەموو پیتەکان دەکات بە پیتی بچووک. ڕێگایەکی تر strcasecmp()ـە، کە دوو بەراورد دەکات و گوێ بە گەورە و بچووکی پیت نادات. ئەگەر یەکسان بن 0 دەگەڕێنێتەوە.

Fixed: compare in small lettersچاککراو: بە پیتی بچووک بەراورد بکەanswer-fixed.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $answer = "no";
    $answer = strtolower($answer);   // "no", "No" and "NO" all become "no"

    if ($answer == "yes") {
        echo "Bale";
    } elseif ($answer == "no") {
        echo "Na";
    } else {
        echo "Please write Yes or No";
    }
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 3

no, No and NO all become no.

no و No و NO هەموویان دەبن بە no.

Lineدێڕی 5, 7

Compare with small-letter words.

لەگەڵ وشەی پیت‌بچووک بەراورد بکە.

Three ways to compare "no" and "No"سێ ڕێگا بۆ بەراوردکردنی "no" و "No"compare-case.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    var_dump("no" == "No");                    // case-sensitive
    var_dump(strtolower("No") == "no");        // compare after lowering
    var_dump(strcasecmp("no", "No") === 0);    // 0 means "equal, ignoring case"
?>

The if statementڕستەی if

The is the simplest decision. PHP checks the condition. If it is true, PHP runs the code. If it is false, PHP skips the code and continues after it.

سادەترین جۆری بڕیاردانە. PHP دەپشکنێت. ئەگەر ڕاست بێت، کۆدەکە جێبەجێ دەکات. ئەگەر هەڵە بێت، بازی بەسەر کۆدەکەدا دەدات و لە دوای ئەوەوە بەردەوام دەبێت.

The if statementڕستەی if

Format 1: one statement, no bracesشێوەی 1: یەک ڕستە، بێ کەوانەی لوولی

Syntax (one statement)داڕستن (یەک ڕستە)TEXT
if (expression)
    statement;

The expression in the parentheses is the condition. Without curly braces, the if controls only the one statement that comes right after it.

ئەو لەناو کەوانەدایە . بەبێ کەوانەی لوولی، if تەنها ئەو یەک کۆنترۆڵ دەکات کە ڕاستەوخۆ لە دوایەوە دێت.

if with one statementif بە یەک ڕستەif-short.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 5;
    $b = 1;

    if ($a > $b)
        echo "a is larger than b";
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 5

The condition: is 5 greater than 1? Yes, it is true.

: ئایا 5 لە 1 گەورەترە؟ بەڵێ، ڕاستە.

Lineدێڕی 6

This one statement belongs to the if. It runs because the condition is true.

ئەم یەک سەر بە ifـە. جێبەجێ دەبێت چونکە ڕاستە.

You can even write a short if on one line. The summary notes use this example:

دەتوانیت ifی کورت لەسەر یەک دێڕیش بنووسیت. پوختەی وانەکان ئەم نموونەیەی هێناوە:

if-one-line.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    if (2 > 1) echo "2 is greater than 1";
?>

The if statementڕستەی if

Format 2: a block in curly bracesشێوەی 2: بلۆکێک لەناو کەوانەی لوولیدا

If you have more than one line of code, put the lines inside curly braces { }. Everything between the braces is one , and all of it belongs to the if.

ئەگەر زیاتر لە یەک دێڕ کۆدت هەیە، دێڕەکان بخەرە ناو کەوانەی لوولی { }. هەموو ئەوەی لە نێوان کەوانەکاندایە یەک و هەمووی سەر بە ifـە.

Syntax (block)داڕستن (بلۆک)TEXT
if (condition) {
    code to be executed if the condition is true;
}
Complete example: a = 4, b = 3نموونەی تەواو: ⁦a = 4⁩، ⁦b = 3⁩if-braces.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 4;
    $b = 3;

    if ($a > $b) {
        echo "a is larger than b";
    }
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 2-3

Create two variables.

دوو دروست بکە.

Lineدێڕی 5

Is 4 larger than 3? Yes, so the block runs.

ئایا 4 لە 3 گەورەترە؟ بەڵێ، بۆیە بلۆکەکە جێبەجێ دەبێت.

Lineدێڕی 7

The closing brace ends the block. No semicolon is needed after }.

کەوانەی داخستن بلۆکەکە کۆتایی پێدێنێت. دوای } پێویست بە ناکات.

Two flowcharts. Left: if – the program reaches a diamond that asks whether the condition ($a > $b) is true; if true, the if block runs; if false, the block is skipped; both paths reach the rest of the program. Right: if...else – the same diamond; true leads to the if block, false leads to the else block; both then reach the rest of the program.دوو هێڵکاریی ڕەوت. لای چەپ: if – بەرنامەکە دەگاتە لاکێشەیەکی لار کە دەپرسێت ئایا مەرجەکە ($a > $b) ڕاستە؛ ئەگەر ڕاست بێت بلۆکی if جێبەجێ دەبێت؛ ئەگەر هەڵە بێت بازی بەسەر بلۆکەکەدا دەدرێت؛ هەردوو ڕێگا دەگەنە بەشەکانی تری بەرنامەکە. لای ڕاست: if...else – هەمان لاکێشەی لار؛ true دەچێتە بلۆکی if و false دەچێتە بلۆکی else؛ پاشان هەردووکیان دەگەنە بەشەکانی تری بەرنامەکە.
Flowcharts of if (run or skip) and if...else (choose one of two blocks). if (جێبەجێکردن یان بازدان) و if...else (هەڵبژاردنی یەکێک لە دوو بلۆک).CêIT
A trap: the indented line is NOT inside the ifتەڵە: دێڕە بۆشاییدراوەکە لەناو ifـدا نییەno-braces.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 1;
    $b = 5;

    if ($a > $b)
        echo "a is larger than b<br>";
        echo "This line always runs";
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 5

1 is not larger than 5, so the condition is false.

1 لە 5 گەورەتر نییە، بۆیە هەڵەیە.

Lineدێڕی 6

Only this line belongs to the if, so it is skipped.

تەنها ئەم دێڕە سەر بە ifـە، بۆیە تێدەپەڕێنرێت.

Lineدێڕی 7

This line only looks like part of the if. Spaces mean nothing to PHP, so it always runs.

ئەم دێڕە تەنها وا دیارە بەشێک بێت لە if. بۆ PHP هیچ واتایەکی نییە، بۆیە هەمیشە جێبەجێ دەبێت.

Quick checkپشکنینی خێراWhat does this print? $x = 10; if ($x < 5) echo "small"; echo "done";ئەمە چی چاپ دەکات؟ $x = 10; if ($x < 5) echo "small"; echo "done";

The if statementڕستەی if

Two separate if statementsدوو ڕستەی ifـی سەربەخۆ

The lecture then shows two independent if statements, one for each direction:

پاشان وانەکە دوو پیشان دەدات، یەکێک بۆ هەر ئاراستەیەک:

two-ifs.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 3;
    $b = 4;

    if ($a > $b) {
        echo "a is larger than b";
    }
    if ($a < $b) {
        echo "a is not larger than b";
    }
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 5

3 > 4 is false: skip.

3 > 4 هەڵەیە: تێدەپەڕێت.

Lineدێڕی 8

3 < 4 is true: print the message.

3 < 4 ڕاستە: پەیامەکە چاپ دەکات.

This works, but there is a gap. What if $a and $b are equal? Then both conditions are false, and the page shows nothing:

ئەمە کار دەکات، بەڵام کەلێنێکی تێدایە. ئەگەر $a و $b یەکسان بن چی دەبێت؟ ئەو کاتە هەردوو هەڵەن و پەڕەکە هیچ پیشان نادات:

two-ifs-equal.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 4;
    $b = 4;

    if ($a > $b) {
        echo "a is larger than b";
    }
    if ($a < $b) {
        echo "a is not larger than b";
    }
    // Nothing is printed: 4 is not larger than 4, and 4 is not smaller than 4.
?>

PHP also checks both conditions every time, even when the first one was already true. The next two statements, if...else and elseif, solve these problems.

هەروەها PHP هەموو جارێک هەردوو دەپشکنێت، تەنانەت کاتێک یەکەمیان ڕاست بووبێت. دوو داهاتوو، if...else و elseif، ئەم کێشانە چارەسەر دەکەن.

if...else: one of two pathsif...else: یەکێک لە دوو ڕێگا

The if...else statement runs some code if a condition is true, and other code if that condition is false. The has no condition of its own. It catches every case that the if did not catch.

if...else کۆدێک جێبەجێ دەکات ئەگەر ڕاست بێت و کۆدێکی تر ئەگەر هەمان هەڵە بێت. هیچ تایبەت بە خۆی نییە. هەموو ئەو حاڵەتانە دەگرێت کە if نەیگرتوون.

SyntaxداڕستنTEXT
if (condition) {
    code to be executed if condition is true;
} else {
    code to be executed if condition is false;
}
Example: a = 3, b = 4نموونە: ⁦a = 3⁩، ⁦b = 4⁩if-else.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 3;
    $b = 4;

    if ($a > $b) {
        echo "a is larger than b";
    } else {
        echo "a is not larger than b";
    }
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 5

3 > 4 is false…

3 > 4 هەڵەیە…

Lineدێڕی 7-8

…so the else block runs.

…بۆیە بلۆکی else جێبەجێ دەبێت.

Look at the right half of the flowchart above: with if...else, exactly one of the two blocks runs, never both and never none. Now the case $a == $b also prints something (a is not larger than b), because "not larger" includes "equal".

سەیری نیوەی ڕاستی سەرەوە بکە: لە if...elseدا تەنها یەکێک لە دوو بلۆکەکە جێبەجێ دەبێت، هەرگیز هەردووکیان و هەرگیز هیچیان. ئێستا حاڵەتی $a == $bیش شتێک چاپ دەکات (⁦a is not larger than b⁩)، چونکە «گەورەتر نییە» یەکسانبوونیش دەگرێتەوە.

Quick checkپشکنینی خێرا$age = 17; What does if ($age >= 18) { echo "Adult"; } else { echo "Child"; } print?$age = 17; ئەم کۆدە چی چاپ دەکات؟ if ($age >= 18) { echo "Adult"; } else { echo "Child"; }

if...elseif...else: more than two pathsif...elseif...else: زیاتر لە دوو ڕێگا

The if...elseif...else statement runs different code for more than two conditions. Each adds one more condition to check.

if...elseif...else بۆ زیاتر لە دوو کۆدی جیاواز جێبەجێ دەکات. هەر تر بۆ پشکنین زیاد دەکات.

SyntaxداڕستنTEXT
if (condition) {
    code to be executed if this condition is true;
} elseif (condition) {
    code to be executed if this condition is true;
} else {
    code to be executed if all conditions are false;
}

This is how to deal with different cases. Now all three cases (larger, equal, smaller) get their own message:

ئەمە ڕێگای مامەڵەکردنە لەگەڵ حاڵەتی جیاواز. ئێستا هەر سێ حاڵەتەکە (گەورەتر، یەکسان، بچووکتر) پەیامی تایبەت بە خۆیان هەیە:

Example: a = 4, b = 4نموونە: ⁦a = 4⁩، ⁦b = 4⁩elseif.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 4;
    $b = 4;

    if ($a > $b) {
        echo "a is larger than b";
    } elseif ($a == $b) {
        echo "a is equal to b";
    } else {
        echo "a is smaller than b";
    }
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 5

4 > 4 is false, so PHP goes on to the next condition.

4 > 4 هەڵەیە، بۆیە PHP دەچێتە سەر دواتر.

Lineدێڕی 7

4 == 4 is true. Note: == compares, = would assign!

4 == 4 ڕاستە. ئاگاداربە: == بەراورد دەکات، = دادەنێت!

Lineدێڕی 8

This block runs. PHP then jumps to the end; the else is not checked.

ئەم بلۆکە جێبەجێ دەبێت. پاشان PHP بازدەدات بۆ کۆتایی؛ else ناپشکنرێت.

Flowchart of if/elseif/else for $a = 4 and $b = 4. First diamond: if ($a > $b), 4 > 4, false. Second diamond: elseif ($a == $b), 4 == 4, true, which leads to the highlighted block echo "a is equal to b". The else block (echo "a is smaller than b") and the first block are not run. All blocks join the rest of the program. Output: a is equal to b.هێڵکاریی ڕەوتی if/elseif/else بۆ $a = 4 و $b = 4. یەکەم پرسیار: if ($a > $b)، 4 > 4، هەڵەیە. دووەم پرسیار: elseif ($a == $b)، 4 == 4، ڕاستە و دەچێتە بلۆکی دیارکراوی echo "a is equal to b". بلۆکی else (echo "a is smaller than b") و یەکەم بلۆک جێبەجێ ناکرێن. هەموو بلۆکەکان دەگەنە بەشەکانی تری بەرنامەکە. دەرخستە: a is equal to b.
PHP checks the conditions from top to bottom and runs only the block of the first true one.PHP لە سەرەوە بۆ خوارەوە دەپشکنێت و تەنها بلۆکی یەکەم ڕاست جێبەجێ دەکات.CêIT

Rules to remember

یاساکانی بیرت بێت

  • You can write as many elseif parts as you need.
  • PHP checks the conditions in order, from top to bottom. It runs the block of the first true condition and then jumps to the end. The other conditions are not even checked.
  • The else part is optional. If there is no else and no condition is true, nothing runs.
  • else must come last, and there can be only one.
  • PHP also accepts else if (two words). It works the same way here. The lab heading wrote else if while its code used elseif; both are correct.
  • دەتوانیت چەندت بوێت بەشی elseif بنووسیت.
  • PHP بە ڕیز، لە سەرەوە بۆ خوارەوە دەپشکنێت. بلۆکی یەکەم ڕاست جێبەجێ دەکات و پاشان بازدەدات بۆ کۆتایی. تر تەنانەت ناپشکنرێن.
  • بەشی else ئارەزوومەندانەیە. ئەگەر else نەبێت و هیچ ڕاست نەبێت، هیچ شتێک جێبەجێ نابێت.
  • else دەبێت لە کۆتاییدا بێت و تەنها یەک else دەبێت.
  • PHP else ifیش (دوو وشە) وەردەگرێت و لێرەدا هەمان کار دەکات. سەردێڕی تاقیگەکە ⁦else if⁩ی نووسیبوو و کۆدەکەی elseifی بەکارهێنابوو؛ هەردووکیان دروستن.

if...elseif...else: more than two pathsif...elseif...else: زیاتر لە دوو ڕێگا

A longer example: from a mark to a gradeنموونەیەکی درێژتر: لە نمرەوە بۆ پلە

Kurdish universities give grades like Excellent, Very good, Good, Medium, Pass and Fail. Here Aram's mark is 72:

زانکۆکانی کوردستان پلەی وەک نایاب، زۆر باش، باش، ناوەند، پەسەند و کەوتوو دەدەن. لێرەدا نمرەی ئارام ⁦72⁩ـە:

grade.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $mark = 72;

    if ($mark >= 90) {
        echo "Excellent";
    } elseif ($mark >= 80) {
        echo "Very good";
    } elseif ($mark >= 70) {
        echo "Good";
    } elseif ($mark >= 60) {
        echo "Medium";
    } elseif ($mark >= 50) {
        echo "Pass";
    } else {
        echo "Fail";
    }
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 4

72 >= 90? No.

72 >= 90؟ نەخێر.

Lineدێڕی 6

72 >= 80? No.

72 >= 80؟ نەخێر.

Lineدێڕی 8-9

72 >= 70? Yes. Print Good and stop checking.

72 >= 70؟ بەڵێ. Good چاپ دەکات و پشکنین دەوەستێت.

This works only because the conditions go from the highest mark down. If you write them in the wrong order, the first condition catches marks that belong to a later one:

ئەمە تەنها لەبەر ئەوە کار دەکات کە لە بەرزترین نمرەوە بۆ خوارەوە نووسراون. ئەگەر بە ڕیزبەندییەکی نادروست بیاننووسیت، یەکەم ئەو نمرانەش دەگرێت کە هی دواترن:

Wrong order: 95 gets "Pass"ڕیزبەندیی نادروست: ⁦95⁩ دەبێتە "Pass"grade-wrong.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $mark = 95;

    if ($mark >= 50) {
        echo "Pass";
    } elseif ($mark >= 90) {
        echo "Excellent";   // never reached: 95 already matched ">= 50"
    } else {
        echo "Fail";
    }
?>
Quick checkپشکنینی خێرا$t = 30; Which message is printed? if ($t > 35) { echo "Very hot"; } elseif ($t > 25) { echo "Hot"; } elseif ($t > 15) { echo "Nice"; } else { echo "Cold"; }$t = 30; کام پەیام چاپ دەبێت؟ if ($t > 35) { echo "Very hot"; } elseif ($t > 25) { echo "Hot"; } elseif ($t > 15) { echo "Nice"; } else { echo "Cold"; }

Joining conditions: AND, OR and NOTپێکەوەبەستنی مەرجەکان: AND و OR و NOT

Sometimes one question is not enough. Is the student's mark at least 50 *and** did she attend the exam?* join or reverse conditions. The result is again true or false.

هەندێک جار یەک پرسیار بەس نییە. ئایا نمرەی خوێندکارەکە لانیکەم ⁦50⁩ـە *و** ئایا ئامادەی تاقیکردنەوەکە بووە؟* پێکەوە دەبەستن یان پێچەوانەیان دەکەنەوە. ئەنجامەکە دیسان true یان falseـە.

Logical operators
OperatorNameناوTrue when…کەی ڕاستە…
&&AND (also written and)AND «و» (بە andیش دەنووسرێت)both conditions are trueهەردوو ڕاست بن
||OR (also written or)OR (بە orیش دەنووسرێت)at least one condition is trueلانیکەم یەکێک لە ڕاست بێت
!NOTNOT (پێچەوانەکردنەوە)the condition is false (it reverses the answer) هەڵە بێت (ئەنجامەکە پێچەوانە دەکاتەوە)
xorexclusive OROR ـی تایبەتexactly one of the two is trueتەنها یەکێک لە دووانەکە ڕاست بێت
Truth table: every possible answer: هەموو وەڵامە گونجاوەکان
ABA && BA || B!A
truetruetruetruefalse
truefalsefalsetruefalse
falsetruefalsetruetrue
falsefalsefalsefalsetrue
PHP Full Course for free 🐘Bro Code · Englishئینگلیزی · 3M viewsبینین · 65K likesلایک · Partبەشی 1:10:49–1:21:05 (ofلە 4:00:00)

How to create a function, send values in with arguments, and get a result back with return, with a short practice example.

چۆن دروست بکەیت، بە بنێریتە ناوی و بە return ئەنجامێک لێی وەربگریتەوە، لەگەڵ ڕاهێنانێکی کورت.

Plays only the 'logical operators' chapter (1:10:49–1:21:05).

تەنها بەشی پەخش دەبێت (⁦1:10:49⁩ تا ⁦1:21:05⁩).

Joining conditions: AND, OR and NOTپێکەوەبەستنی مەرجەکان: AND و OR و NOT

AND: &&AND (و): &&

With &&, the block runs only if both conditions are true. In this lecture example, the variables are created in one PHP block and used in a second PHP block of the same file. This works: a keeps its value in all PHP blocks of one page.

بە &&، بلۆکەکە تەنها کاتێک جێبەجێ دەبێت کە هەردوو ڕاست بن. لەم نموونەیەی وانەکەدا، لە بلۆکێکی PHP دروست دەکرێن و لە بلۆکێکی تری PHP ـی هەمان بەکاردەهێنرێن. ئەمە کار دەکات: لە هەموو بلۆکەکانی PHP ـی یەک پەڕەدا دەپارێزێت.

Logical ANDAND ـی لۆجیکیand.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 5;
    $b = 4;
?>
<?php
    $c = 20;
    $d = 1;

    if (($a > $b) && ($c > $d)) {
        echo "a is larger than b AND ";
        echo "c is larger than d ";
    }
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 1-4

First PHP block: create $a and $b.

یەکەم بلۆکی PHP: $a و $b دروست دەکات.

Lineدێڕی 5-8

Second PHP block: $a and $b still exist here.

دووەم بلۆکی PHP: $a و $b هێشتا لێرە هەن.

Lineدێڕی 9

5 > 4 is true and 20 > 1 is true, so the whole condition is true.

5 > 4 ڕاستە و 20 > 1 ڕاستە، بۆیە هەموو ڕاستە.

Lineدێڕی 10-11

Two echo statements: this is why braces are needed.

دوو echo: لەبەر ئەمە کەوانەی لوولی پێویستە.

The lab shows that you can also write it without the inner parentheses:

تاقیگەکە پیشانی دەدات کە دەتوانیت بەبێ کەوانە ناوەکییەکانیش بینووسیت:

and-short.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 5;
    $b = 4;
    $c = 20;
    $d = 1;

    if ($a > $b && $c > $d) {
        echo "a is larger than b AND ";
        echo "c is larger than d ";
    }
?>

Both versions give the same result. The reason is : PHP always does comparisons like > before && and ||, just as in mathematics multiplication comes before addition. The extra parentheses are still useful: they make the code easier to read.

هەردوو وەشانەکە هەمان ئەنجام دەدەن. هۆکارەکەی : PHP هەمیشە بەراوردکردنی وەک > پێش && و || ئەنجام دەدات، هەروەک چۆن لە بیرکاریدا لێکدان پێش کۆکردنەوە دێت. کەوانە زیادەکان هێشتا بەسوودن: کۆدەکە ئاسانتر دەخوێنرێتەوە.

Joining conditions: AND, OR and NOTپێکەوەبەستنی مەرجەکان: AND و OR و NOT

OR: ||OR (یان): ||

With ||, the block runs if at least one condition is true. In this example only the first condition is true (5 > 4). The second one is false (1 > 20), but that is enough for OR.

بە ||، بلۆکەکە جێبەجێ دەبێت ئەگەر لانیکەم یەکێک لە ڕاست بێت. لەم نموونەیەدا تەنها یەکەم ڕاستە (5 > 4). دووەمیان هەڵەیە (1 > 20)، بەڵام بۆ OR ئەمە بەسە.

Logical OROR ـی لۆجیکیor.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 5;
    $b = 4;
    $c = 1;
    $d = 20;

    if (($a > $b) || ($c > $d)) {
        echo "At least one condition is true: ";
        echo "a is larger than b OR c is larger than d";
    }
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 7

true || false → true

ئەنجامی true || false دەبێتە true

Lineدێڕی 8-9

A message that tells the truth: at least one condition is true.

پەیامێک کە ڕاستی دەڵێت: لانیکەم یەکێک لە ڕاستە.

Joining conditions: AND, OR and NOTپێکەوەبەستنی مەرجەکان: AND و OR و NOT

NOT: !NOT (پێچەوانە): !

! reverses a condition: !true is false and !false is true. It is often used with isset(), in the next section: !isset($a) means "$a is NOT set".

! پێچەوانە دەکاتەوە: !true دەبێتە false و !false دەبێتە true. زۆرجار لەگەڵ isset() بەکاردێت، لە بەشی داهاتوودا: !isset($a) واتە «هیچ بۆ $a دانەنراوە».

truth.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    var_dump(true && false);   // AND: both must be true
    var_dump(true || false);   // OR: at least one must be true
    var_dump(!true);           // NOT: turns true into false
?>
Quick checkپشکنینی خێرا$a = 5; $b = 10; Which condition is true?$a = 5; $b = 10; کام ڕاستە؟

Is the variable set? isset() and unset()ئایا گۆڕاوەکە نرخی هەیە؟ isset() و unset()

isset() checks a . It returns true if the variable exists and is not null. unset() destroys a variable, so after unset($a) the variable no longer exists.

isset() دەپشکنێت. ئەگەر هەبێت و null نەبێت true دەگەڕێنێتەوە. unset() دەسڕێتەوە، بۆیە دوای unset($a) ئیتر بوونی نییە.

A typical use: give a default value if a variable is not set. In the lecture example, $a was set to 5 in an earlier PHP block, so the if body does not run:

بەکارهێنانێکی باو: ئەگەر هیچ نەبوو، بنەڕەتیی پێ بدە. لە نموونەکەی وانەکەدا، $a لە بلۆکێکی پێشووی PHPـدا کرابوو بە 5، بۆیە ناوەڕۆکی if جێبەجێ نابێت:

If a is not set, set it to 100ئەگەر a نرخی نەبوو، بیکە بە ⁦100⁩isset.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 5;
    $b = 4;
?>
<?php
    if (!isset($a)) {
        $a = 100;
    }
    echo $a;
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 6

isset($a) is true (a is 5), so !isset($a) is false.

isset($a) ڕاستە (a یەکسانە بە ⁦5⁩)، بۆیە !isset($a) هەڵەیە.

Lineدێڕی 7

Skipped.

تێدەپەڕێنرێت.

Lineدێڕی 9

$a keeps its old value.

$a کۆنەکەی دەپارێزێت.

Now the same code, but unset($a) destroys the variable first. This time !isset($a) is true, so $a gets the value 100:

ئێستا هەمان کۆد، بەڵام سەرەتا unset($a) دەسڕێتەوە. ئەم جارە !isset($a) ڕاستە، بۆیە $a ⁦100⁩ وەردەگرێت:

unset.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 5;
    $b = 4;
?>
<?php
    unset($a);

    if (!isset($a)) {
        $a = 100;
    }
    echo $a;
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 6

"unset(var_name) unsets a variable that was set." $a no longer exists.

«unset(var_name) نرخدار دەسڕێتەوە.» ئیتر $a بوونی نییە.

Lineدێڕی 8-10

!isset($a) is now true, so $a = 100 runs.

ئێستا !isset($a) ڕاستە، بۆیە $a = 100 جێبەجێ دەبێت.

Be careful: isset() only asks "does the variable exist and is it not null?". An empty string "" and the number 0 are values:

ئاگاداربە: isset() تەنها دەپرسێت «ئایا هەیە و null نییە؟». بەتاڵ "" و ژمارەی 0 :

What does isset() say?isset() چی دەڵێت؟isset-cases.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $name  = "Hana";
    $empty = "";
    $zero  = 0;
    $nothing = null;

    var_dump(isset($name));      // has a value
    var_dump(isset($empty));     // an empty string is still a value
    var_dump(isset($zero));      // 0 is still a value
    var_dump(isset($nothing));   // null means "no value"
    var_dump(isset($city));      // $city was never created
    var_dump(isset($name, $zero));  // true only if ALL are set
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 10

: the variable has no value.

: هیچ نییە.

Lineدێڕی 11

$city was never created. isset() gives no warning; it simply returns false.

$city هەرگیز دروست نەکراوە. isset() هیچ نادات؛ تەنها false دەگەڕێنێتەوە.

Lineدێڕی 12

With several variables, the answer is true only if all of them are set.

بە چەند ، ئەنجامەکە تەنها کاتێک ڕاستە کە هەموویان هەبێت.

Quick checkپشکنینی خێرا$n = null; What does var_dump(isset($n)); show?$n = null; ئەم کۆدە چی پیشان دەدات؟ var_dump(isset($n));

The switch statementڕستەی switch

The is used to perform different actions based on different values. It looks at one value and selects one of many blocks of code to run.

بۆ ئەنجامدانی کاری جیاواز بەپێی جیاواز بەکاردێت. سەیری یەک دەکات و یەکێک لە چەندین هەڵدەبژێرێت بۆ جێبەجێکردن.

SyntaxداڕستنTEXT
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;
}

How it works

چۆن کار دەکات

  1. PHP works out the value in switch ( ) once.

    PHP ناو switch ( ) یەک جار هەژمار دەکات.

  2. It compares that value with each , from top to bottom. It uses ==, so "1" matches case 1:.

    ئەو یەک لە دوای یەک لەگەڵ بەراورد دەکات، لە سەرەوە بۆ خوارەوە. == بەکاردەهێنێت، بۆیە "1" لەگەڵ case 1: دەگونجێت.

  3. At the first match, PHP starts running the code of that case.

    لە یەکەم گونجاندا، PHP دەست دەکات بە جێبەجێکردنی کۆدی ئەو بەشە.

  4. break ends the switch. PHP jumps to the code after the closing }.

    break کۆتایی بە switch دەهێنێت. PHP بازدەدات بۆ ئەو کۆدەی دوای }ـی داخستنە.

  5. If no case matches, the runs. default is optional; without it, nothing runs.

    ئەگەر هیچ بەشێک نەگونجا، جێبەجێ دەبێت. default ئارەزوومەندانەیە؛ ئەگەر نەبێت، هیچ شتێک جێبەجێ نابێت.

Sorting letters at the post officeجیاکردنەوەی نامە لە پۆستەخانە

A post-office worker in Sulaymaniyah looks at the city on each letter. Erbil letters go into the Erbil box, Duhok letters into the Duhok box, and letters for any other city go into the other box. One value (the city), many possible boxes, and one other box: that is switch with default.

فەرمانبەرێکی پۆستەخانە لە سلێمانی سەیری ناوی شارەکە لەسەر هەر نامەیەک دەکات. نامەی هەولێر دەچێتە سندووقی هەولێر، نامەی دهۆک دەچێتە سندووقی دهۆک و نامەی هەر شارێکی تر دەچێتە سندووقی تر. یەک (شارەکە)، چەندین سندووقی گونجاو و یەک سندووقی تر: ئەمە switchـە لەگەڵ default.

Where the analogy stops workingسنووری ئەم نموونەیە

A careful worker puts each letter in one box only. PHP is less careful: if you forget break, it keeps going into the next boxes too (see fall-through below).

فەرمانبەرێکی وریا هەر نامەیەک تەنها دەخاتە یەک سندووق. PHP ئەوەندە وریا نییە: ئەگەر break لەبیر بکەیت، دەچێتە ناو سندووقەکانی دواتریش (سەیری لە خوارەوە بکە).

PHP Switch Statement - Switch vs if/else statement - Full PHP 8 TutorialProgram With Gio · Englishئینگلیزی · 47K viewsبینین · 1.7K likesلایک · Partبەشی 0:00–4:10 (ofلە 8:10)

Shows switch with case, default and break, what happens when break is missing (fall-through), and that switch compares values loosely.

لەگەڵ case، default و break پیشان دەدات، چی ڕوودەدات کاتێک break نییە () و ئەوەی switch بە شێوەی ناتوند بەراورد دەکات.

Watch 0:00–4:10: case, default, break, fall-through, loose comparison.

لە ⁦0:00⁩ تا ⁦4:10⁩ سەیر بکە: case، default، break، و بەراوردکردنی ناتوند.

The switch statementڕستەی switch

Examples with numbers and stringsنموونە بە ژمارە و زنجیرەنووسە

Example with numbers

نموونە بە ژمارە

switch-numbers.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php $a = 3; ?>
<?php
    switch ($a) {
        case 0:
            echo "a equals 0";
            break;
        case 1:
            echo "a equals 1";
            break;
        case 2:
            echo "a equals 2";
            break;
        default:
            echo "a is not 0, 1 or 2";
            break;
    }
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 1

A first PHP block sets $a to 3.

یەکەم بلۆکی PHP $a دەکات بە 3.

Lineدێڕی 3

The value to test is $a (3).

ئەو دەپشکنرێت $aـە ⁦(3)⁩.

Lineدێڕی 4, 7, 10

3 is not 0, 1 or 2, so none of these cases match.

3 نە 0ـە، نە 1، نە 2، بۆیە هیچ کام لەم بەشانە ناگونجێن.

Lineدێڕی 13-15

So default runs. Its break is harmless but not needed, because default is the last part.

بۆیە default جێبەجێ دەبێت. breakـەکەی زیانی نییە بەڵام پێویستیش نییە، چونکە default دوایین بەشە.

Example with strings

نموونە بە زنجیرەنووسە

switch-colors.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?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!";
    }
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 5

"red" == "red": match. The message is printed…

"red" == "red": گونجا. پەیامەکە چاپ دەبێت…

Lineدێڕی 7

…and break leaves the switch, so blue, green and default are not run.

…و break لە switch دەردەچێت، بۆیە blue و green و default جێبەجێ ناکرێن.

Lineدێڕی 14-15

No break is needed after the last part.

دوای دوایین بەش پێویست بە break ناکات.

The switch statementڕستەی switch

break and fall-throughbreak و تێپەڕین

break is what stops a switch. A case without break does not stop. PHP simply continues with the code of the next case, without checking its label. This is called . These two examples come from a student's practice notes:

ئەوەی switch ڕادەگرێت breakـە. بەشێکی بێ break ناوەستێت. PHP بە سادەیی بەردەوام دەبێت لەگەڵ کۆدی بەشی دواتر، بەبێ ئەوەی سەیری ناونیشانەکەی بکات. ئەمە پێی دەوترێت . ئەم دوو نموونەیە لە تێبینییەکانی ڕاهێنانی خوێندکارێکەوە هاتوون:

Several break statements in a rowچەند breakێک لە دوای یەکswitch-breaks.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<!DOCTYPE html>
<html>
<body>

<?php
    $x = 5;
    switch ($x) {
        case 1:
            echo "1";
        case 5:
            echo "5";
            break; break; break; break;
        default:
            echo "Default";
            break; break; break;
    }

    echo "<br />" . $x;
?>

</body>
</html>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 7

$x is 5, so PHP jumps to case 5. case 1 is skipped.

$x یەکسانە بە 5، بۆیە PHP بازدەدات بۆ case 5. case 1 تێدەپەڕێنرێت.

Lineدێڕی 11

Prints 5.

5 چاپ دەکات.

Lineدێڕی 12

Four break; in a row are legal. The first one ends the switch; the others are never reached and do nothing.

چوار break; لە دوای یەک ڕێگەپێدراون. یەکەمیان کۆتایی بە switch دەهێنێت؛ ئەوانی تر هەرگیز ناگەنێ و هیچ ناکەن.

Lineدێڕی 13-15

default is not run.

default جێبەجێ نابێت.

Lineدێڕی 18

After the switch: a line break and the value of $x.

دوای switch: دێڕێکی نوێ و $x.

case 1 in this code has no break. With $x = 5 that does not matter. But change $x to 1 and watch what happens:

لەم کۆدەدا case 1 هیچ breakـی نییە. بە $x = 5 ئەمە گرنگ نییە. بەڵام $x بگۆڕە بۆ 1 و سەیری ئەوە بکە کە ڕوودەدات:

Fall-through: case 1 has no breakتێپەڕین: لە case 1دا هیچ break نییەswitch-fallthrough.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $x = 1;
    switch ($x) {
        case 1:
            echo "1";      // no break here...
        case 5:
            echo "5";      // ...so PHP falls into this case too
            break;
        default:
            echo "Default";
    }

    echo "<br />" . $x;
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 5

Prints 1. There is no break after it…

1 چاپ دەکات. دوای ئەوە هیچ break نییە…

Lineدێڕی 7

…so PHP falls into case 5 and prints 5 too. It does not check whether $x is 5.

…بۆیە PHP دەچێتە ناو case 5 و 5یش چاپ دەکات. ناپشکنێت کە ئایا $x یەکسانە بە 5.

Lineدێڕی 8

This break finally stops the switch.

ئەم breakـە لە کۆتاییدا switch ڕادەگرێت.

Two panels with the same switch code: case 1 echoes "1" and has no break; case 5 echoes "5" then break; default echoes "Default". Left panel, $x = 5: PHP jumps straight to case 5, prints 5, and break jumps to the end. Output: 5. Right panel, $x = 1: PHP enters case 1, prints 1, there is no break, so it falls through into case 5, prints 5, and then break jumps to the end. Output: 15.دوو بەش بە هەمان کۆدی switch: case 1 ژمارە 1 چاپ دەکات و break ـی نییە؛ case 5 ژمارە 5 چاپ دەکات و پاشان break؛ default وشەی Default چاپ دەکات. بەشی چەپ، $x = 5: PHP ڕاستەوخۆ دەچێتە case 5، 5 چاپ دەکات و break بازدەدات بۆ کۆتایی. ئەنجام: 5. بەشی ڕاست، $x = 1: PHP دەچێتە case 1، 1 چاپ دەکات، break نییە، بۆیە تێدەپەڕێت بۆ ناو case 5، 5 چاپ دەکات، پاشان break بازدەدات بۆ کۆتایی. ئەنجام: 15.
break ends the switch. Without it, PHP falls through into the next case.break کۆتایی بە switch دەهێنێت. بەبێ ئەو، ڕوودەدات و PHP دەچێتە ناو بەشی دواتر.CêIT

Fall-through is usually a , so put break at the end of every case. But it can also be used on purpose, when several values need the same code. In the Kurdistan Region the weekend is Friday and Saturday:

زۆرجار ، بۆیە لە کۆتایی هەموو بەشێکدا break دابنێ. بەڵام دەکرێت بە ئەنقەستیش بەکاربهێنرێت، کاتێک چەند پێویستیان بە هەمان کۆدە. لە هەرێمی کوردستان پشووی کۆتایی هەفتە هەینی و شەممەیە:

Two cases share one blockدوو بەش یەک بلۆکیان هەیەweekend.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $day = "Saturday";

    switch ($day) {
        case "Friday":
        case "Saturday":
            echo "$day is a weekend day.";
            break;
        default:
            echo "$day is a working day.";
    }
?>
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 5-6

Empty case "Friday": falls through to case "Saturday":. Both values run the same code.

case "Friday":ی بەتاڵ تێدەپەڕێت بۆ case "Saturday":. هەردوو هەمان کۆد جێبەجێ دەکەن.

The switch statementڕستەی switch

switch compares looselyswitch بە شێوەی ناتوند بەراورد دەکات

switch compares with ==, not ===. So a "1" (for example, from a form) matches case 1: (an ). Usually this is helpful, but remember it when types matter.

switch بە == بەراورد دەکات، نەک ===. بۆیە "1" (بۆ نموونە لە ) لەگەڵ case 1: () دەگونجێت. زۆرجار ئەمە بەسوودە، بەڵام کاتێک جۆر گرنگە لە بیرت بێت.

switch-loose.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $input = "1";   // a string, for example from a form

    switch ($input) {
        case 1:     // an integer
            echo "Matched case 1";
            break;
        default:
            echo "No match";
    }
?>
Quick checkپشکنینی خێراWhat does this print? $d = 2; switch ($d) { case 1: echo "A"; case 2: echo "B"; case 3: echo "C"; break; default: echo "D"; }ئەمە چی چاپ دەکات؟ $d = 2; switch ($d) { case 1: echo "A"; case 2: echo "B"; case 3: echo "C"; break; default: echo "D"; }

if...else or switch: which one?if...else یان switch: کامیان؟

A common exam question is: "When should you use if-else and when switch?" The main difference is how they test conditions and the syntax used to write them.

پرسیارێکی باوی تاقیکردنەوە ئەمەیە: «کەی ⁦if-else⁩ بەکاربهێنین و کەی switch؟» جیاوازییە سەرەکییەکە لە چۆنیەتی پشکنینی و ئەو کە پێی دەنووسرێن.

Choosing between if and switchهەڵبژاردن لە نێوان if و switch
Questionپرسیارif...elseif...elseswitch
What it testsچی دەپشکنێتany condition: ranges ($mark >= 50), &&, ||, function results…هەر : مەودا ($mark >= 50)، &&، ||، ئەنجامی …only equality of one value with fixed labelsتەنها یەکسانبوونی یەک لەگەڵ چەند ناونیشانێکی جێگیر
Comparisonبەراوردکردنwhatever you write: ==, ===, <, …هەرچی بینووسیت: ==، ===، <، …always loose ==هەمیشە ==ی ناتوند
Best forباشترینە بۆranges and combined conditionsمەوداکان و تێکەڵone variable checked against many fixed values (menu choice, day name, colour)یەک کە لەگەڵ چەندین جێگیر بەراورد دەکرێت (هەڵبژاردەی لیست، ناوی ڕۆژ، ڕەنگ)
Dangerمەترسیwrong order of elseif conditionsڕیزبەندیی نادروستی elseifforgetting break (fall-through)لەبیرکردنی break ()

Extra: short ways to decideزیادە: ڕێگای کورت بۆ بڕیاردان

The course does not teach the following tools, but you will see them in modern PHP code. Learn if, else and switch first; these are shortcuts.

کۆرسەکە ئەم ئامرازانەی خوارەوە فێر ناکات، بەڵام لە کۆدی PHP ـی نوێدا دەیانبینیت. سەرەتا if و else و switch فێربە؛ ئەمانە ڕێگای کورتن.

Common mistakesهەڵە باوەکان

These mistakes appear again and again in beginners' code. The first one even comes from the course slides. Learn to recognise them, and you will find your own much faster.

ئەم هەڵانە دووبارە و دووبارە لە کۆدی فێرخوازە نوێیەکاندا دەبینرێن. یەکەمیان تەنانەت لە کۆرسەکەوە هاتووە. فێربە بیانناسیتەوە، ئەوکات خۆت زۆر خێراتر دەدۆزیتەوە.

Common mistakesهەڵە باوەکان

Curly quotes copied from slidesجووتەگوتەی خوار کە لە سلایدەوە کۆپی کراوە

Most code in the original lecture and lab used curly "smart" quotes (“ ”), which presentation programs insert automatically. PHP only understands straight quotes (" and '). If you type or paste the code with curly quotes, you get a :

زۆربەی کۆدەکانی وانە و تاقیگە سەرەکییەکە جووتەگوتەی خوار (“ ”)ی بەکارهێنابوو، کە خۆکارانە دایدەنێن. PHP تەنها جووتەگوتەی ئاسایی (" و ') دەناسێتەوە. ئەگەر کۆدەکە بە جووتەگوتەی خوار بنووسیت یان بیلکێنیت، وەردەگریت:

Wrong: curly quotesنادروست: جووتەگوتەی خوارcurly.phpTEXT
<?php
    $a = 4;
    $b = 3;
    if ($a > $b) {
        echo “a is larger than b”;
    }
?>

Common mistakesهەڵە باوەکان

= instead of === لە جیاتی ==

One = stores a value. Two == compare. If you write = in a condition, PHP stores the value and then uses it as the answer. Any number except 0 counts as true:

یەک = هەڵدەگرێت. دوو == بەراورد دەکەن. ئەگەر لە = بنووسیت، PHP هەڵدەگرێت و پاشان وەک ئەنجامی بەکاری دەهێنێت. هەموو ژمارەیەک جگە لە 0 وەک ڕاست دادەنرێت:

assign-bug.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 3;

    if ($a = 5) {          // mistake: = stores 5 in $a
        echo "a is 5<br>";
    }
    echo "Now a is $a";
?>

Common mistakesهەڵە باوەکان

A semicolon after the conditionخاڵبۆر لە دوای مەرجەکە

if (...); ends the if at the . The block after it is then an ordinary block that always runs:

if (...); لە کۆتایی بە if دەهێنێت. ئەو بلۆکەی دوای ئەوە دێت ئیتر بلۆکێکی ئاساییە و هەمیشە جێبەجێ دەبێت:

semicolon-bug.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 1;
    $b = 5;

    if ($a > $b); {        // mistake: the ; ends the if here
        echo "a is larger than b";
    }
?>

Common mistakesهەڵە باوەکان

Other mistakes from this lectureهەڵەکانی تری ئەم وانەیە

  • Two statements without braces – only the first one belongs to the if. See the trap.
  • Wrong order of elseif conditions – a wide condition first hides the narrow ones. See the grade example.
  • Forgetting break in a switch – PHP falls through into the next case. See fall-through.
  • Comparing text with different capital letters – "No" == "no" is false. See comparing text.
  • Using continue to leave a switch – use break. See the warning.
  • Forgetting that == ignores type – "5" == 5 is true. Use === when the type matters.

Lab exercisesڕاهێنانەکانی تاقیگە

These are the tasks of Lab 3 (the conditional statements lab), rewritten clearly, plus two questions from the course notes. Try each one yourself before you open the answer.

ئەمانە ئەرکەکانی تاقیگەی 3ن (تاقیگەی )، بە ڕوونی دووبارە نووسراونەتەوە، لەگەڵ دوو پرسیار لە تێبینییەکانی کۆرسەکە. پێش کردنەوەی چارەسەرەکە، هەر یەکێکیان خۆت هەوڵ بدە.

Set up the lab projectئامادەکردنی پرۆژەی تاقیگە
  1. Start XAMPP and make sure Apache is running.

    XAMPP دەست پێبکە و دڵنیابە Apache کار دەکات.

  2. In the htdocs folder, create a new project folder named conditions. The lab asked for a new PHP project in NetBeans; any editor, for example VS Code, is fine.

    لە htdocsدا نوێ بە ناوی conditions دروست بکە. تاقیگەکە داوای پرۆژەیەکی نوێی PHP ـی لە NetBeans کردبوو؛ هەر ، بۆ نموونە ⁦VS Code⁩، گونجاوە.

  3. Save each example as its own file, for example example1.php, and open it in the browser at http://localhost/conditions/example1.php.

    هەر نموونەیەک وەک جیا پاشەکەوت بکە، بۆ نموونە example1.php و لە بیکەرەوە: http://localhost/conditions/example1.php.

ExerciseڕاهێنانExample 1: if statementنموونەی 1: ڕستەی if

Store 10 in $a and 15 in $b. If $a is less than $b, print B is greater than A.

⁦10⁩ لە $a و ⁦15⁩ لە $b هەڵبگرە. ئەگەر $a لە $b بچووکتر بوو، B is greater than A چاپ بکە.

Hintئاماژە

Use < inside the parentheses of if.

لەناو کەوانەکانی ifدا < بەکاربهێنە.

Show answerوەڵامەکە پیشان بدە
PHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 10;
    $b = 15;

    if ($a < $b) {
        echo "B is greater than A";
    }
?>
ExerciseڕاهێنانExample 2: if...else statementنموونەی 2: ڕستەی if...else

Store 3 in $a and 4 in $b. Print a is larger than b if $a is larger; otherwise print a is not larger than b.

3 لە $a و 4 لە $b هەڵبگرە. ئەگەر $a گەورەتر بوو a is larger than b چاپ بکە؛ ئەگینا a is not larger than b چاپ بکە.

Show answerوەڵامەکە پیشان بدە
PHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 3;
    $b = 4;

    if ($a > $b) {
        echo "a is larger than b";
    } else {
        echo "a is not larger than b";
    }
?>
ExerciseڕاهێنانExample 3: if...elseif...elseنموونەی ⁦3: if...elseif...else⁩

Store 4 in both $a and $b. Print whether $a is larger than, equal to, or smaller than $b. Then try other values to reach every branch.

4 لە هەردوو $a و $b هەڵبگرە. چاپ بکە کە ئایا $a لە $b گەورەترە، یەکسانە پێی، یان بچووکترە. پاشان تر تاقی بکەرەوە تا بگەیتە هەموو بەشەکان.

Show answerوەڵامەکە پیشان بدە
PHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 4;
    $b = 4;

    if ($a > $b) {
        echo "a is larger than b";
    } elseif ($a == $b) {
        echo "a is equal to b";
    } else {
        echo "a is smaller than b";
    }
?>

With $a = 5, $b = 4 you get a is larger than b; with $a = 3, $b = 4 you get a is smaller than b. (The lab printed a equals to b; correct English is a is equal to b.)

بە $a = 5, $b = 4 دەگەیتە a is larger than b؛ بە $a = 3, $b = 4 دەگەیتە a is smaller than b. (تاقیگەکە a equals to bی چاپ دەکرد؛ ئینگلیزیی دروست a is equal to bـە.)

ExerciseڕاهێنانExample 4: logical ANDنموونەی ⁦4: AND⁩ ـی لۆجیکی

With $a = 5, $b = 4, $c = 20, $d = 1, print a is larger than b AND c is larger than d only if both comparisons are true. Write it once with extra parentheses and once without.

بە $a = 5, $b = 4, $c = 20, $d = 1، a is larger than b AND c is larger than d تەنها کاتێک چاپ بکە کە هەردوو بەراوردکردنەکە ڕاست بن. جارێک بە کەوانەی زیادەوە و جارێک بەبێ ئەوان بینووسە.

Show answerوەڵامەکە پیشان بدە
PHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 5;
    $b = 4;
    $c = 20;
    $d = 1;

    if ($a > $b && $c > $d) {
        echo "a is larger than b AND ";
        echo "c is larger than d ";
    }
?>

The version with (($a > $b) && ($c > $d)) gives exactly the same output, because comparisons are done before &&.

وەشانی (($a > $b) && ($c > $d)) ڕێک هەمان دەدات، چونکە بەراوردکردن پێش && ئەنجام دەدرێت.

ExerciseڕاهێنانExample 5: logical ORنموونەی ⁦5: OR⁩ ـی لۆجیکی

With $a = 5, $b = 4, $c = 1, $d = 20, print a message if $a > $b or $c > $d. Which of the two conditions is true?

بە $a = 5, $b = 4, $c = 1, $d = 20، ئەگەر $a > $b یان $c > $d ڕاست بوو پەیامێک چاپ بکە. کام لەو دوو ڕاستە؟

Show answerوەڵامەکە پیشان بدە
PHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $a = 5;
    $b = 4;
    $c = 1;
    $d = 20;

    if (($a > $b) || ($c > $d)) {
        echo "At least one condition is true: ";
        echo "a is larger than b OR c is larger than d";
    }
?>

Only $a > $b is true; $c > $d (1 > 20) is false. OR needs just one true condition, so the message is printed.

تەنها $a > $b ڕاستە؛ $c > $d (1 > 20) هەڵەیە. OR تەنها یەک ڕاستی پێویستە، بۆیە پەیامەکە چاپ دەبێت.

ExerciseڕاهێنانQuestion: if-else or switch?پرسیار: ⁦if-else⁩ یان switch؟

When should you use if-else, and when switch? Give one example of each.

کەی ⁦if-else⁩ بەکاردەهێنیت و کەی switch؟ بۆ هەر یەکێکیان نموونەیەک بهێنەوە.

Show answerوەڵامەکە پیشان بدە

switch tests only equality of one value with fixed labels, using loose ==. Use it for one variable checked against many fixed values, for example the day of the week. if...else can test any condition, including ranges and &&/||. Use it for example to turn a mark into a grade ($mark >= 90). The rule "same data type → switch" from the notes is not correct (see if or switch).

switch تەنها یەکسانبوونی یەک لەگەڵ ناونیشانی جێگیر دەپشکنێت، بە ==ی ناتوند. بۆ یەک بەکاری بهێنە کە لەگەڵ چەندین جێگیر بەراورد دەکرێت، بۆ نموونە ڕۆژی هەفتە. if...else دەتوانێت هەر بپشکنێت، لەوانە مەودا و &&/||. بۆ نموونە بۆ گۆڕینی نمرە بۆ پلە بەکاری بهێنە ($mark >= 90). یاسای «هەمان ← switch» لە تێبینییەکاندا دروست نییە (سەیری if یان switch بکە).

ExerciseڕاهێنانQuestion: why is "no" not "No"?پرسیار: بۆچی "no" یەکسان نییە بە "No"؟

A program checks if ($answer == "No"). The user types no. Why does the program go to the else part, and how do you fix it?

if ($answer == "No") دەپشکنێت. no دەنووسێت. بۆچی دەچێتە بەشی else و چۆن چاکی دەکەیت؟

Show answerوەڵامەکە پیشان بدە

String comparison with == is case-sensitive, so "no" == "No" is false. Fix: compare strtolower($answer) == "no", or use strcasecmp($answer, "No") === 0.

بەراوردکردنی بە == ، بۆیە "no" == "No" هەڵەیە. چارەسەر: strtolower($answer) == "no" بەراورد بکە، یان strcasecmp($answer, "No") === 0 بەکاربهێنە.

ExerciseڕاهێنانExtra practice: day type with switchڕاهێنانی زیادە: جۆری ڕۆژ بە switch

Store a day name in $day. Using switch, print weekend day for Friday and Saturday and working day for every other day. Use one shared block for the two weekend days.

ناوی ڕۆژێک لە $day هەڵبگرە. بە switch، بۆ هەینی و شەممە weekend day و بۆ هەموو ڕۆژەکانی تر working day چاپ بکە. بۆ دوو ڕۆژی پشووەکە یەک بلۆکی هاوبەش بەکاربهێنە.

Hintئاماژە

Write two case lines one under the other, with no code between them.

دوو دێڕی case لە ژێر یەکتری بنووسە، بێ کۆد لە نێوانیاندا.

Show answerوەڵامەکە پیشان بدە
PHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    $day = "Saturday";

    switch ($day) {
        case "Friday":
        case "Saturday":
            echo "$day is a weekend day.";
            break;
        default:
            echo "$day is a working day.";
    }
?>
ExerciseڕاهێنانExtra practice: a greeting from today's dateڕاهێنانی زیادە: سڵاوێک بەپێی ڕێکەوتی ئەمڕۆ

date('D') gives today's day as three English letters: Mon, Tue, … Fri, Sat, Sun. Write a page that prints Have a nice weekend! on Friday, Have a nice Saturday! on Saturday and Have a nice day! on every other day. Kurdistan's clock is three hours ahead of UTC, so first set the time zone with date_default_timezone_set('Asia/Baghdad').

date('D') ڕۆژی ئەمڕۆ بە سێ پیتی ئینگلیزی دەدات: Mon، Tue، … Fri، Sat، Sun. لاپەڕەیەک بنووسە کە ڕۆژی هەینی Have a nice weekend!، ڕۆژی شەممە Have a nice Saturday! و ڕۆژەکانی تر Have a nice day! چاپ بکات. کاتژمێری کوردستان سێ کاتژمێر لە UTC لە پێشترە، بۆیە سەرەتا بە date_default_timezone_set('Asia/Baghdad') دابنێ.

Hintئاماژە

Use if … elseif … else and compare $d with 'Fri' and 'Sat' (straight quotes).

if … elseif … else بەکار بهێنە و $d لەگەڵ 'Fri' و 'Sat' بەراورد بکە (جووتەگوتەی ڕاست).

Show answerوەڵامەکە پیشان بدە
weekend.phpPHPRuns on the serverلەسەر ڕاژەکاری وێب کار دەکات
<?php
    date_default_timezone_set('Asia/Baghdad');   // Kurdistan time (UTC+3)
    $d = date('D');                              // Mon, Tue, ..., Sun

    if ($d == 'Fri') {
        echo "Have a nice weekend!";
    } elseif ($d == 'Sat') {
        echo "Have a nice Saturday!";
    } else {
        echo "Have a nice day!";
    }
?>

Why the time zone? Without it PHP uses the server's setting, which is often UTC. At 01:30 on Friday night in Erbil it is still 22:30 on Thursday in UTC, so the page would wrongly say Have a nice day! (we tested both zones). date() always gives English day names, whatever the language of the server.

بۆچی ؟ بەبێ ئەو، PHP بەکار دەهێنێت، کە زۆرجار UTCـە. کاتژمێر ⁦01:30⁩ی شەوی هەینی لە هەولێر، لە UTC هێشتا کاتژمێر ⁦22:30⁩ی پێنجشەممەیە، بۆیە لاپەڕەکە بە هەڵە دەڵێت ⁦Have a nice day!⁩ (هەردوو ناوچەکەمان تاقی کردەوە). date() هەمیشە ناوی ڕۆژەکان بە ئینگلیزی دەدات، زمانی هەرچی بێت.

Summary and reviewپوختە و پێداچوونەوە

  • A is an expression whose answer is true or false. It is built with comparison operators (>, >=, <, <=, ==, !=, ===, !==) and joined with &&, || and !.
  • if runs a block only when its condition is true. Without braces, it controls only one statement.
  • if...else always runs exactly one of two blocks.
  • if...elseif...else checks conditions from top to bottom and runs only the first true one.
  • isset() is true when a variable exists and is not null; unset() destroys a variable.
  • switch compares one value with many case labels (using ==). break ends it; without break, PHP falls through. default runs when nothing matches.
  • String comparison is case-sensitive. Code must use straight quotes.
  • کە وەڵامەکەی true یان falseـە. بە (>، >=، <، <=، ==، !=، ===، !==) دروست دەکرێت و بە && و || و ! پێکەوە دەبەسترێن.
  • if تەنها کاتێک بلۆکێک جێبەجێ دەکات کە ڕاست بێت. بەبێ کەوانەی لوولی، تەنها یەک کۆنترۆڵ دەکات.
  • if...else هەمیشە ڕێک یەکێک لە دوو بلۆک جێبەجێ دەکات.
  • if...elseif...else لە سەرەوە بۆ خوارەوە دەپشکنێت و تەنها یەکەم ڕاست جێبەجێ دەکات.
  • isset() ڕاستە کاتێک هەبێت و null نەبێت؛ unset() دەسڕێتەوە.
  • switch یەک لەگەڵ چەندین case بەراورد دەکات (بە ==). break کۆتایی پێدێنێت؛ بەبێ break، PHP تێدەپەڕێت. default جێبەجێ دەبێت کاتێک هیچ شتێک نەگونجێت.
  • بەراوردکردنی . کۆد دەبێت جووتەگوتەی ئاسایی بەکاربهێنێت.
Review questionsپرسیارەکانی پێداچوونەوە
What are the four conditional statements in PHP?چوار ڕستە مەرجییەکەی PHP کامانەن؟

if, if...else, if...elseif...else and switch. (PHP 8 also has the match expression.)

if، if...else، if...elseif...else و switch. (⁦PHP 8⁩ matchیشی هەیە.)

When do you need curly braces after if?کەی پێویستت بە کەوانەی لوولی دەبێت لە دوای if؟

When the if must control more than one statement. It is good practice to use them always.

کاتێک if دەبێت زیاتر لە یەک کۆنترۆڵ بکات. باشترە هەمیشە بەکاریان بهێنیت.

$a = 4; $b = 4; Two separate if statements test $a > $b and $a < $b. What is printed, and how do you fix it?$a = 4; $b = 4; دوو ڕستەی ifـی جیا $a > $b و $a < $b دەپشکنن. چی چاپ دەبێت و چۆن چاکی دەکەیت؟

Nothing, because both conditions are false. Use if...elseif...else with an elseif ($a == $b) branch, or an else.

هیچ، چونکە هەردوو هەڵەن. if...elseif...else بەکاربهێنە لەگەڵ بەشی elseif ($a == $b)، یان else.

What is the difference between == and ===?جیاوازیی نێوان == و === چییە؟

== compares values after converting types ("5" == 5 is true). === also requires the same type ("5" === 5 is false).

== دوای بەراورد دەکات ("5" == 5 ڕاستە). === هەمان جۆریشی پێویستە ("5" === 5 هەڵەیە).

What do &&, || and ! do?&& و || و ! چی دەکەن؟

&& is true when both conditions are true; || when at least one is true; ! reverses true and false.

&& ڕاستە کاتێک هەردوو ڕاست بن؛ || کاتێک لانیکەم یەکێکیان ڕاست بێت؛ ! پێچەوانە دەکاتەوە.

What does isset($x) return for $x = 0, for $x = null, and for a variable that was never created?isset($x) چی دەگەڕێنێتەوە بۆ $x = 0، بۆ $x = null و بۆ گۆڕاوێک کە هەرگیز دروست نەکراوە؟

true for 0 (it is a value); false for null; false for a variable that does not exist.

true بۆ 0 ()؛ false بۆ null؛ false بۆ کە بوونی نییە.

What is fall-through in a switch?تێپەڕین لە switchدا چییە؟

When a case has no break, PHP continues into the code of the next case without checking its label.

کاتێک بەشێکی case ـی break نییە، PHP بەردەوام دەبێت بۆ ناو کۆدی بەشی دواتر بەبێ پشکنینی ناونیشانەکەی.

What happens if you write continue inside a switch that is not in a loop?ئەگەر continue لەناو switchێکدا بنووسیت کە لەناو خولدا نییە، چی ڕوودەدات؟

It acts like break, and PHP 7.3+ shows a warning: "continue" targeting switch is equivalent to "break".

وەک break کار دەکات و ⁦PHP 7.3+⁩ پیشان دەدات: "⁦continue" targeting switch is equivalent to "break⁩".

Videoڤیدیۆ

Watch a videoسەیری ڤیدیۆیەک بکە

A video that viewers liked a lot and praised in their comments, chosen for this lesson.ڤیدیۆیەک کە بینەران زۆریان پێ خۆش بووە و لە کۆمێنتەکانیاندا ستایشیان کردووە، بۆ ئەم وانەیە هەڵبژێردراوە.

8 | Conditions & Control Structures in PHP | 2023 | Learn PHP Full Course for BeginnersDani Krossing · Englishئینگلیزی · 65K viewsبینین · 1.5K likesلایک

A full beginner lesson on if, else if and else, then switch and PHP 8's match expression, with examples.

وانەیەکی تەواو بۆ سەرەتاییەکان دەربارەی ، else if و else، پاشان و لە 8دا، بە نموونەوە.

Overview: if/else if/else, switch, and match (extra).

تێڕوانینێکی گشتی: if/else if/else، switch و match (زیادە).

Lesson complete!وانەکە تەواو بوو!

Well done. Review the key terms, then go on to the next lesson.دەستخۆش. سەیرێکی زاراوە سەرەکییەکان بکەرەوە، پاشان بڕۆ بۆ وانەی داهاتوو.

Key termsزاراوە سەرەکییەکان

Next lessonوانەی داهاتوو

Loops: while, do...while, for, foreach, break and continueخولەکان: while و ⁦do...while⁩ و for و foreach و break و continue

References and further readingسەرچاوەکان و خوێندنەوەی زیاتر

This lecture is a first edition. The Kurdish text and terminology are waiting for review by Kurdish IT teachers.ئەم وانەیە چاپی یەکەمە. دەقە کوردییەکە و زاراوەکانی چاوەڕێی پێداچوونەوەی مامۆستایانی کوردی بواری IT ن.