• June 2, 2017

    การเปลี่ยนหน้าตาเว็บไปตามช่วงเวลา กำหนดแบบอัตโนมัติ หรือจะนำไปประยุกต์ใช้ กับการแสดงข้อมูล ตามช่วงเวลา

    ตัวอย่างโค้ดต่อไปนี้เป็นการประยุกต์ใช้งาน ฟังก์ชัน time() อย่างง่าย โดยอาศัยการเปรียบเทียบค่า timestamp
    ของช่วงเวลา มาเป็นเงื่อนไข

    เช่น ต้องการกำหนด style ให้กับเว็บไซต์ ใน 3 ช่วงเวลา
    คือ
    1—6.00 น. – 12.00 น.
    2—12.01 น.- 18.00 น.
    3—เวลานอกจาก 2 ช่วงข้างต้น 18.01-06.00 น.ของวันใหม่

    สามารถกำหนดได้ดังนี้

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>use time function</title>
    <?php
    if(time()>=strtotime("06:00:00") && time()<strtotime("06:00:00 + 6 hour ")){
        $style_period="-period1";
    }
    if(time()>=strtotime("12:00:00") && time()<strtotime("12:00:00 + 6 hour ")){
        $style_period="-period2";
    }
    if(time()>=strtotime("18:00:00") && time()<strtotime("18:00:00 + 12 hour ")){
        $style_period="-period3";
    }
    ?>
    <link rel="stylesheet" type="text/css" href="yourstyle<?=$style_period?>.css"/> 
    </head>
     
    <body>
    </body>
    </html>

    เราต้องมีไฟล์ css 3 ไฟล์ ชื่อ
    yourstyle-period1.css
    yourstyle-period2.css
    yourstyle-period3.css

    <?
        $date = date("Y-m-d");
        $time = date("H:i:s");
         
        echo $date." / ".$time;
    ?>

    Loop through dates (from date to date) with strtotime() function

    <?php
    	// Set timezone
    	date_default_timezone_set('UTC');
    
    	// Start date
    	$date = '2009-12-06';
    	// End date
    	$end_date = '2020-12-31';
    
    	while (strtotime($date) <= strtotime($end_date)) {
                    echo "$date\n";
                    $date = date ("Y-m-d", strtotime("+1 day", strtotime($date)));
    	}
    
    ?>

    Note: All different PHP strtotime() function syntaxes can be used

    <?php
    
    	// Set timezone
    	date_default_timezone_set('UTC');
    
    	echo strtotime("now") . "\n";
    	echo strtotime("10 October 2010") . "\n";
    	echo strtotime("next Friday") . "\n";
    	echo strtotime("last Tuesday"), "\n";
    
    ?>

    OK

    <?php
    $sleep = "ผมจะนอน";
    $go = "ผมจะไปข้างนอก";
    $rain = "ฝนไม่ตก"; // เหตุการณ์จริงวันนี้ ฝนไม่ตก ,code นี้รันแล้วจะแสดง "ผมจะไปข้างนอก" เพราะ ได้กำหนดให้วันนี้ฝนไม่ตก
    
    if($rain == "ฝนตก")
    {
       echo $sleep;
    }
    else
    {
       echo $go;
    }
    ?>
    
    <?/*
    "ถ้าวันนี้ฝนไม่ตก ผมจะออกไปซื้อของข้างนอก แต่ถ้าวันนี้ฝนตก ผมจะนอนอยู่บนเตียง"
    
    คำว่า "ถ้าวันนี้ฝนไม่ตก" กับ "แต่ถ้าวันนี้ฝนไม่ตก" คือเงื่อนไข
    คำว่า "ผมจะออกไปซื้อของข้างนอก" กับ "ผมจะนอนอยู่บนเตียง" คือ เหตุการณ์ที่เกิดขึ้นเมื่อเป็นไปตามเงื่อนไขที่กำหนด
    
    ตัวแปรที่เกี่ยวกับข้อความที่กล่าวมา มีอะไรบ้าง?
    1. ผม คือ ตัวบุคคล หรือ คน
    2. ฝน คือ สิ่งกำเนิดเงื่อนไข หมายถึง ฝนตก หรือ ไม่ตก
    
    == (เท่ากับ) 
    ตัวอย่าง if($a == $b){ "สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข" }
    
    != (ไม่เท่ากับ) ไม่เท่ากัน ไม่ใช่ ไม่เหมือน
    ตัวอย่าง if($a != $b) {"สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข" }
    
    > (มากกว่า) มีค่ามากกว่า
    ตัวอย่าง if($a > $b){"สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข" }
    
    < (น้อยกว่า) มีค่าน้อยกว่า
    ตัวอย่าง ($a < $b){"สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข" }
    
    and หรือ && (และ)
    ตัวอย่าง if($a == $b and $a == $c){ "สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข" }
    
    or หรือ || (หรือ)
    ตัวอย่าง if($a == $b or $a == $c){ "สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข" }
    
    *ผิดบ่อยๆ ระหว่าง การกำหนดตัวแปร กับ การสร้างเงื่อนไข ตอนใช้ = เท่ากับ
    เพราะหากเราตั้งตัวแปร เราจะใช้ = (เท่ากับตัวเดียว) แต่หากจะสร้างเงื่อนไข จะใช้ == (เท่ากับ เท่ากับ) อย่าใช้สับสน
    */
    ?>
    <br>
    <?php    
    $s1 = "ตรง";
    $s2 = "ไม่ตรง";
    $startdate = strtotime("10 June 2010");
    $otherdate = strtotime("8 July 2017");
    $twoweeks  = strtotime("+2 weeks") - time();
    if($otherdate>$startdate && (($otherdate-$startdate)%$twoweeks)==0) {
    	   echo $s1;
        // this is n * two weeks after
    }
    else
    {
       echo $s2;
    }
    
    ?>
    
    <?php
    print time()."<br>"; // เวลา timestamp ของเครื่อง
    date_default_timezone_set("Asia/Bangkok"); //เซตพื้นที่ เพื่อให้เวลาตรงกับของจริง
    
    print date("D d m Y H:i:s")."<br>";
    print date("วัน D เดือน m ปี Y")."<br>";
    print mktime (11,45,42,8,1,2011)."<br>"; //แปลงจาก date เป็น timestamp
    print date("d/m/Y",strtotime("+1 week"))."<br>"; //strtotime ใช้คำนวณเวลาอนาคต อดีต ได้
    print date("D d/m/Y",strtotime("-50 days"));
    
    /*เป็นฟังก์ชั่นวันที่และเวลา ฟังก์ชัน date() , ฟังก์ชัน time() , ฟังก์ชัน mktime() , ฟังก์ชัน strtotime
    -time()    แสดงเป็นเวลา timestamp ของเครื่อง
    -date()    กำหนดวัน
    -mktime() แปลงจาก date เป็น timestamp
    -strtotime ใช้กำหนดเวลา*/
    ?>

    function strtotime ( )

    $timestamp = strtotime ( “+3 days” );
    // จะบวกเพิ่มไป 3 วัน นับจากวันนี้ และคืนค่ากลับมาเป็น timestamp

    echo date ( “Y-m-d”, $timestamp );
    // นำ timestamp ที่ได้ มาจัด format ว่าอยากให้แสดงผลอย่างไร

    ดูเพิ่มเติมได้ที่

    http://code.function.in.th/php/datetime/strtotim
    http://code.function.in.th/php/datetime/date

    PHP DateAdd

    PHP DateAdd() ฟังก์ชั่นเกี่ยวกับการเพิ่มลบวันที่และเวลา ในที่นี้จะใช้ function strtotime(),mktime() เข้ามาจัดการในเรื่องของการเพิ่มหรือลบเวลา

    <?php
    date('Y-m-d', strtotime($time))
    date('Y-m-d', mktime($int-time))
    ?>

    Date/Time Functions
    http://www.thaicreate.com/php-manual/ref.datetime.html

    Sample

    <?php
    echo date('Y-m-d',strtotime('+1 month'))."<br>";
    echo date('Y-m-d',strtotime("now"))."<br>";
    echo date('Y-m-d',strtotime("10 September 2000"))."<br>";
    echo date('Y-m-d',strtotime("+1 day"))."<br>";
    echo date('Y-m-d',strtotime("+1 week"))."<br>";
    echo date('Y-m-d',strtotime("+1 week 2 days 4 hours 2 seconds"))."<br>";
    echo date('Y-m-d',strtotime("next Thursday"))."<br>";
    echo date('Y-m-d',strtotime("last Monday"))."<br>";
    echo date("Y-m-d H:i:s", mktime(date("H"), date("i")+0, date("s")+0, date("m")+0  , date("d")+0, date("Y")+0))."<br>";
    ?>

    ในกรณีที่เพิ่มจากวันที่ ที่ไม่ใช่ปัจจุบัน

    $strStartDate = "2013-04-21";
    $strNewDate = date ("Y-m-d", strtotime("+3 day", strtotime($strStartDate)));

    http://www.crnfe.ac.th/php_mysql/ch02.htm

    บวกวันเพิ่ม

    <? 
    echo $DateResultNow=date("Y-m-d H:i:s", mktime(date("H")+7, date("i")+0, date("s")+0, date("m")+0 , date("d")+0, date("Y")+0));
    /*
    date("H")+0 // ชม.
    date("i")+0 // นาที
    date("s")+0 // วินาที
    date("d")+0 // วัน
    date("m")+0 // เดือน
    date("Y")+0 // ปี 
    */
    ?>
    <?php
    function add_date($givendate,$day=0,$mth=0,$yr=0) {
    		$cd = strtotime($givendate);
    		$newdate = date('Y-m-d h:i:s', mktime(date('h',$cd),
    		date('i',$cd), date('s',$cd), date('m',$cd)+$mth,
    		date('d',$cd)+$day, date('Y',$cd)+$yr));
    		return $newdate;
         }
    
    echo add_date("2010-12-09",2,1,0);
    ?>
    <?php
    $inputDate = "2011-09-09 15:25:40";
    $strCurrDate = strtotime($inputDate);
    echo date("Y-m-d H:i:s", mktime(date("H",$strCurrDate)+5, date("i",$strCurrDate)+0, date("s",$strCurrDate)+0, date("m",$strCurrDate)+0  , date("d",$strCurrDate)+0, date("Y",$strCurrDate)+0));
    ?>
    <?php
    $date = "2009-12-31";
    
    echo date("Y-m-d", strtotime("+1 day", strtotime($date)));
    
    ถ้าต้องการบวกปี หรือเดือนก็เปลี่ยนจาก day เป็น year, month เช่น
    echo date("Y-m-d", strtotime("+1 year", strtotime($date)));
    ?>
    <?php
    	$day = new DateTime("2009-12-31");
    	
            $daytest = 
    	echo "วันที่/เวลาเริ่มต้น = ".$day->format('d/m/y H:i:s');
    	
    	$day->modify('next 5 hours');
    	echo "<br />วันที่/เวลา หลังจากเพิ่มอีก 5 ชม. = ".$day->format('d/m/y H:i:s');
    ?>

    เพิ่มจากวันที่มีอยู่แล้ว

    $strStartDate = "2013-04-21";
    $strNewDate = date ("Y-m-d", strtotime("+3, strtotime($strStartDate)));

    โชวน์ วัน

    <?php
    echo date("Y/m/d") . "<br />";
    echo date("Y.m.d") . "<br />";
    echo date("Y-m-d");
    ?>
    
    <?php
    $tomorrow = mktime(0,0,0,date("m"),date("d")+1,date("Y"));
    echo "พรุ่งนี้ คือวันที่ ".date("d/m/Y", $tomorrow);
    ?>
    
    <?php
    $nextyear = mktime(0,0,0,date("m"),date("d"),date("Y")+1);
    echo "พรุ่งนี้ ปีหน้า คือวันที่ ".date("d/m/Y", $nextyear);
    ?>

    Loop through dates (from date to date) with strtotime() function
    จะแสดงวันที่ทั้งหมดในเงื่อนไข

    <?php
    	// Set timezone
    	date_default_timezone_set('UTC');
    
    	// Start date
    	$date = '2017-01-22';
    	// End date
    	$end_date = '2017-01-31';
    
    	while (strtotime($date) <= strtotime($end_date)) {
                    echo "$date\n";
                    $date = date ("Y-m-d", strtotime("+1 day", strtotime($date)));
    	}
    
    ?>
    <?php
    
    	// Set timezone
    	date_default_timezone_set('UTC');
    
    	echo strtotime("now") . "\n";
    	echo strtotime("10 October 2010") . "\n";
    	echo strtotime("next Friday") . "\n";
    	echo strtotime("last Tuesday"), "\n";
    
    ?>

    repeat a meeting or event same day of every month in 2 year forward

    <?php
    //
    date_default_timezone_set('Europe/Berlin');
    
    //
    $startDate = '2017-01-06'; // friday
    
    // Show event dates for next 2 years
    // one year = ~52 weeks
    // 52 weeks / 4 weeks intervals = 13 months ;)
    // So, two years = 26 intervals with 4 weeks
    //
    for($i = 1; $i <= 26; $i++)
    {
        $weekOffset = $i * 4;
        $nextDate = strtotime("{$startDate} +{$weekOffset} weeks");
        echo date('Y-m-d l', $nextDate) . PHP_EOL;
    }
    ?>

    echo function with the html tags
    echo img src with style

    echo "<img src=\"{$row['one']}\" style=\"width:100px\" />";
    echo '<img src="', $row['one'], '" style="width:100px" />';

    Logical Operators
    Example   Name   Result

    $a and $b   And   TRUE if both $a and $b are TRUE.
    $a or $b   Or   TRUE if either $a or $b is TRUE.
    $a xor $b   Xor   TRUE if either $a or $b is TRUE, but not both.
    ! $a   Not   TRUE if $a is not TRUE.
    $a && $b   And   TRUE if both $a and $b are TRUE.
    $a || $b   Or   TRUE if either $a or $b is TRUE.
    <?php
    $t = date("H");
    echo "<p>The hour (of the server) is " . $t; 
    echo ", and will give the following message:</p>";
    
    if ($t < "10") {
        echo "Have a good morning!";
    } elseif ($t < "20") {
        echo "Have a good day!";
    } else {
        echo "Have a good night!";
    }
    ?>

    elseif กับ if สามารถใส่ได้เรื่อยๆ

    if ($x=='x' && $y=='y' && $z=='z'){
    // do if matches
    }else {
    //do otherwise
    }

    ถ้าอายุมากกว่า 50 ให้แสดงคำว่า “Old”
    ถ้าอายุมากกว่า 30 ให้แสดงคำว่า “Adult”
    ถ้าน้อยกว่า 30 ให้แสดงคำว่า “Teen”
    ถ้าอายุน้อยกว่า 0 หรือมากกว่า 100 ให้แสดงคำว่า “Error”

    <?php
    if(($age>100) || ($age<0)) {
         echo "Error";
    
    } else if($age>50) {
         echo "Old";
    
    } else if($age>30) {
         echo "Adult";
    
    } else {
         echo "Teen";
    
    }
    ?>
    <?
       $day = date("l");
       switch ($day)
       {   	case "Monday" : echo "วันนี้วันจันทร์";	break;
             case "Tuesday" : echo "วันนี้วันอังคาร";	break;
             case "Wednesday" : echo "วันนี้วันพุธ";	break;
             case "Tursday" : echo "วันนี้วันพฤหัสฯ"; break;
             case "Friday" : echo "วันนี้วันสุดท้าย";	break;
             default : echo "วันหยุด ";
       }  
    ?>

    แบบเงื่อนไขเดียว จะทำงานก็ต่อเมื่อเงื่อนไขเป็นจริง

    if (เงื่อนไข) {
    // ทำงานในส่วนนี้เมื่อเงื่อนไขเป็นจริง
    }

    ตัวอย่าง

    <?php
        $a = 10;
     
        if ( 2 < 5 ) {
            echo "สองน้อยกว่าห้า";
        }
     
        if ($a + 5 < 20) {
            echo "สิบบวกห้าน้อยกว่ายี่สิบ";
        }
    ?>

    แบบสองเงื่อนไข เมื่อเงื่อนไขเป็นจริง จะทำงานในส่วน if แต่ถ้าเงื่อนไขเป็นเท็จจะทำงานในส่วน else

    if (เงื่อนไข) {
    // ทำงานเมื่อเงื่อนไขเป็นจริง
    }
    else {
    // ทำงานเมื่อเงื่อนไขเป็นเท็จ
    }

    ตัวอย่าง

    <?php
        $a = 10;
        if ($a < 10) {
            echo "เงื่อนไขเป็นจริง";
        }
        else {
            echo "เงื่อนไขเป็นเท็จ";
        }
    ?>

    คล้ายๆ กับแบบเงื่อนไขเดียว คือจะทำงานก็ต่อเมื่อเงื่อนไขเป็นจริง แต่เพิ่มการทำงานเมื่อเงื่อนไขเป็นเท็จด้วย ทำให้การทำงานของโปรแกรมเพิ่มเป็น 2 ทาง

    แบบหลายเงื่อนไข การทำงาน 2 แบบแรก จะมีการเปรียบเทียบเงื่อนไขเพียงเงื่อนไขเดียว แต่ถ้าหากเราต้องการเปรียบเทียบหลายๆ เงื่อนไข โดยแต่ละเงื่อนไขจะทำงานไม่เหมือนกัน

    <?php
        if (เงื่อนไข 1) {
            // ทำงานเมื่อเงื่อนไข 1 เป็นจริง
        }
        elseif (เงื่อนไข 2) {
            // ทำงานเมื่อเงื่อนไข 2 เป็นจริง
        }
        elseif (เงื่อนไข 3) {
            // ทำงานเมื่อเงื่อนไข 3 เป็นจริง
        }
        elseif (เงื่อนไข n) {
            // ทำงานเมื่อเงื่อนไข n เป็นจริง
        }
        else {
            // ทำงานเมื่อเงื่อไขข้างบนเป็นเท็จทั้งหมด
        }
    ?>

    โปรแกรมตัดเกรดง่ายๆ

    <?php
        $score = 79;
     
        if ($score > 80) {
            echo "Grade A";
        }
        elseif ($score > 70) {
            echo "Grade B";
        }
        elseif ($score > 60) {
            echo "Grade C";
        }
        elseif ($score > 50) {
            echo "Grade D";
        }
        else {
            echo "Grade F";
        }
    ?>

    ผลลัพท์ที่ได้คือ Grade B แล้วทำไมถึงเป็นแบบนี้ ในเมื่อเงื่อนไขอื่นๆ ก็เป็นจริงเหมือนกัน
    เพราะการทำงานของ if..elseif.. เมื่อเจอเงื่อนไขที่เป็นจริงแล้ว จะทำงานที่เงื่อนไขนั้น และข้ามการทำงานของเงื่อนไขอื่นๆ ไป

    นอกจากนั้น เรายังสามารถใช้เงื่อนไขซ้อนเงื่อนไขได้ด้วย ลองดูตัวอย่างครับ

    <?php
        $a = 25;
        if ($a < 100) {
            if ($a < 50) {
                echo "a น้อยกว่า 50";
            }
            else {
                echo "a มากกว่า 50";
            }
        }
    ?>
    

    จะเห็นว่า เราสามารถซ้อนเงื่อนไขกี่ชั้นก็ได้ แต่ในชีวิตจริงแล้ว สัก 3 – 4 ชั้น ก็เริ่มแย่แล้ว
    เขียนโดยไม่ใช่เครื่องหมายปีกกาล่ะ? ก็จะได้ตัวอย่างแบบนี้

    <?php
        if (expression1) if (expression2) statement1; else statement2;
     
        // ลองเขียนใหม่ เผื่อจะเข้าใจง่ายขึ้น
     
        // แบบที่ 1
     
        if (expression1)
            if (expression2)
                statement1;
        else
            statement2;
     
        // แบบที่ 2
     
        if(expression1)
            if (expression2)
                statement1;
            else
                statement2;
    ?>

    จากตัวอย่างข้างบนเป็นปัญหาของโปรแกรมเกือบทุกภาษา ปัญหานี้เรียกว่า Dangling else ถ้ามองโจทย์เป็นแบบที่ 1 ก็จะมองได้ว่า else เป็นของ if ตัวนอก แต่ถ้าเป็นแบบที่ 2 จะมองได้ว่า else เป็นของ if ตัวข้างใน ซึ่งการเขียนทั้ง 2 แบบ ถูกต้องตามหลักไวยากรณ์ของ if..else.. ทุกอย่าง แล้วปัญหานี้ โปรแกรมจะแก้ไขอย่างไร?

    บางภาษาเช่น Ada จะมีการจบ if ด้วย end if ทำให้ไม่มีปัญหานี้เกิดขึ้น แต่ภาษา php ไม่มีการจบ if โปรแกรมจะถือว่า else ตัวใดๆ จะเป็นของ if ตัวที่อยู่ใกล้ที่สุด จะทำให้โปรแกรมไม่มีทางสับสน แต่คนเขียนนี่แหละจะสับสนเอง…

    ทางแก้ปัญหาที่ (ผมคิดว่า) ถูกต้องคือ ใส่ block ให้มันซะ ไม่ว่าคำสั่งที่ทำงานหลังจาก if จะมีแค่คำสั่งเดียวก็ตาม เพราะนอกจากโปรแกรมจะดูเป็นระเบียบแล้ว ถ้าหากเรากลับมาอ่านทีหลัง จะไม่สับสนเอง แล้วยังกำหนดการทำงานได้ตามต้องการด้วย

    <?php
        // ลองเขียนใหม่
        if (expression1) {
            if (expression2) {
                statement1;
            }
        }
        else {
            statement2;
        }
        // else เป็นของ if ตัวแรก ไม่ใช่ if ที่อยู่ใกล้ที่สุด
     
        if(expression1) {
            if (expression2) {
                statement1;
            }
            else {
                statement2;
            }
        }
        // else เป็นของ if ตัวที่สอง
    ?>

    เงื่อนไข switch… case…

    switch… case… จะว่าไปมันก็ไม่เชิงเป็นเงื่อนไข เนื่องจากต้องมีการกำหนดค่าที่แน่นอนของตัวเลือก ไม่เหมือนกับ if ที่สามารถกำหนดเป็นช่วง หรือเป็นการคำนวนได้ ทำให้หลายๆ ภาษาอย่างเช่น Python ตัด switch… case… ออกไป รูปแบบการเขียนจะเป็นดังนี้

    <?php
        $web = "cmdevhub";
        switch ($web) {
            case: "cmdevhub" :
                echo "http://www.cmdevhub.com";
                break;
            case: "pantip";
                echo "http://www.pantip.com";
                break;
            default:
                echo "ไม่ได้เลือกเว๊ป";
                break;
        }
    ?>

    จะเห็นว่าทางเลือกของ switch… case… นั้น จะมีเพียงทางเดียว ซึ่งจะว่าไป ก็ไม่ค่อยจะมีประโยชน์สำหรับโปรแกรมระดับสูงเท่าไหร่ ผมจำได้ว่าครั้งสุดท้ายที่เขียนโปรแกรมแล้วใช้ switch… case… แบบจริงจัง ก็เขียนภาษา C บน Dos แล้วจับแป้นลูกศรทั้ง 4 ตัวล่ะครับ

    แต่ถ้าหากเรารู้ค่าที่แน่นอนและเส้นทางที่แน่นอน การใช้ switch… case… จะเป็นทางเลือกที่ดีมากกว่า if เนื่องจากเมื่อพบเปรียบเทียบแล้ว จะข้ามไปทำงานตามสิ่งที่ switch เจอเลยถ้าไม่พบ จะไปทำที่ default: แทน แต่ถ้าเป็น if จะทำการเปรียบเทียบไปเรื่อยๆ จนครบ ถ้าหากมีเงื่อนไขมากก็ต้องเปรียบเทียบจนครบ อันนี้ก็แล้วแต่ความเหมาะสมของโปรแกรมครับ

    cmdevhub.com/บทที่-6-คำสั่งเงื่อนไข/

    การใช้ if, if else ใน PHP

    Syntax if ใน php

    if(condition){ 
       statement 1;
       statement 2;
       ...
    }
    

    condition คือเงื่อนไงที่ต้องการ statement ก็คือคำสั่งในโปรแกรม อาจประกอบด้วยหลายคำสั่ง ถ้าหากมีคำสั่งมากกว่าหนึ่งให้ใส่วงเล็บปีกกา{} ครอบคำสั่งทั้งหมดไว้ แต่ถ้ามีเพียงคำสั่งเดียวไม่ต้องใส่วงเล็บปีกกาก็ได้ ถ้าหากไม่มีคำสั่งใด ๆ ให้ใส่วงเล็บเปล่า หรือใส่เครื่องหมาย ; ไว้ก็ได้

    ตัวอย่างการใช้ if ใน php

    function useif($score){
       if($score < 50) print("Your Grade : F");
       if($score >= 50 && $score < 60) print("Your Grade : D");
       if($score >= 60 && $score < 70) print("Your Grade : C");
       if($score >= 70 && $score < 80) print("Your Grade : B");
       if($score >= 80) print("Your Grade : A");
    }

    โปรแกรมนี้รับค่าคะแนนมาจากการเรียกใช้ฟังก์ชัน เราใช้ if เพื่อตรวจสอบไปแต่ละเกรด จะเห็นว่าเราใช้แต่ if ตามหลัง if มีแค่คำสั่งเดียว ไม่ต้องใส่วงเล็บปีกกาครอบก็ได้ โปรแกรมนี้จะตรวจสอบทุก if นั่นคือตรวจสอบว่าน้อยกว่า 50 ต่อไป ก็ มากกว่า 50 และ น้อยกว่า 60 หรือไม่ และตรวจสอบไปเรื่อย ๆ ทุก ๆ เกรดถ้าคะแนน น้อยกว่า 50 แล้วปริ้น F ออกมา แต่ก็ต้องตรวจสอบว่าเป็นเกรด D C B หรือ A หรือไม่

    Syntax if else ใน php

    if(condition){ 
       statement 1;
       statement 2;
       ...
    }
    else{
       statement 1;
       statement 2;
       ...
    }

    โปรแกรมจะเข้าสู่การทำงานในบล็อก else ได้ ก็ต่อเมื่อ การทำงานใน if เป็นเท็จ

    ตัวอย่างการใช้ if else ใน php

    function useif($score){
       if($score < 50) print("Your Grade : F");
       else{
          if($score < 60) print("Your Grade : D");
          else{
             if($score < 70) print("Your Grade : C");
             else{
                if($score < 80) print("Your Grade : B");
                else print("Your Grade : A");
             }
          }
       }
    }

    โปรแกรมนี้เราใช้ if else ตอนแรกก็ตรวจสอบว่าน้อยกว่า 50 หรือไม่ ถ้าใช่ ก็ปริ้น F ออกมา แต่ถ้าไม่ใช่ก็ไปทำที่ else ใน else ก็ไปตรวจสอบ if ใน else อีกที หรือที่เรียกกันว่า if ซ้อน if นั่นเอง จาก if ซ้อน if เราก็สามารถลดรูปกลายเป็นโปรแกรมที่สามนั่นคือ if else if

    Syntax if else if ใน php

    if(condition1){ 
       statement 1;
       statement 2;
       ...
    }
    else if(condition2){ 
       statement 1;
       statement 2;
       ...
    }
    else{
       statement 1;
       statement 2;
       ...
    }

    การใช้ if else if จะทำการตรวจสอบ condition แต่ละอัน ถ้าอันไหนเป็นจริง ก็จะทำงานในบล็อกนั้น

    ตัวอย่างการใช้ if else if ใน php

    function useif($score){
       if($score < 50) print("Your Grade : F");
       else if($score < 60) print("Your Grade : D");
       else if($score < 70) print("Your Grade : C");
       else if($score < 80) print("Your Grade : B");
       else print("Your Grade : A");
    }

    โปรแกรมนี้เป็นการใช้ if else if เพื่อตรวจสอบน้อยกว่า 50 หรือไม่ถ้าไม่ก็ไปตรวจอันที่สอง ถ้าน้อยกว่า 60 ก็ทำการปริ้น D ออกมา แล้วจบโปรแกรม ต่างจากโปรแกรมแรกที่ต้องตรวจทุก if แม้จะปริ้นเกรดออกมาแล้ว และเป็นการลดรูปจากโปรแกรมที่สอง จากการใช้ if ซ้อนกันหลาย ๆ ครั้ง ทำให้โปรแกรมดูง่ายขึ้น

    โค๊ดให้โชว์เมื่อเงื่อนไขเป็นวัน เดือน ตามที่กำหนด ทุกๆปี

    <?php
    $date1 = date("Y-m-d");
    $date2 = date("Y-01-01");
    $date3 = date("Y-01-02");
    $date4 = date("Y-01-23");
    if($date1=="$date2"){
    	echo "...";
    }
    
    if($date1=="$date3"){
    	echo "...";
    }
    
    if($date1=="$date4"){
    	echo "...";
    }
    
    else {echo 'newyear';}
    ?>
    

    มีค่าเท่ากับ โค๊ดข้างล่างนี้

    <?php
    $date1 = date("Y-m-d");
    $date2 = date("Y-01-01");
    $date3 = date("Y-01-02");
    $date4 = date("Y-01-23");
    if($date1=="$date2"||$date1=="$date3"||$date1=="$date4"){
    	echo "... ";
    }
    
    else {echo 'newyear';}
    ?>

    and เขียนแทนด้วยสัญลักษณ์ &&
    or  เขียนแทนด้วยสัญลักษณ์    ||

    and หมายถึง และ  เช่น
    a ==1  && b ==2  หมายความว่า  a ต้องเท่ากับ 1 และ b ต้องเท่ากับ 2 ด้วย
    ต้องเป็นจริงทั้งคู่ ถึงจะผ่าน
    ยกตัวอย่าเป็นภาษาไทยเช่น  ฝนตก  และต้องตากฝนด้่วย ถึงจะเปียก  (ต้องเป็นจริงทั้งสองเงื่อนไข)

    เขียนเป็นคำสั่ง if ได้คือ

    if( a == 1 && b == 2){
    }

    ส่วน or แปลว่าหรือ  เช่น
    a==1 || b==2  หมายความว่า aต้องเท่ากับ1  หรือว่า b เท่ากับสองก็ได้
    เป็นจริงสิ่งใดสิ่งหนึ่งก็ได้ หมายความว่า ด้านสองด้าน ด้านไหนจะเป็นจริงก็ได้
    ยกตัวอย่าเป็นภาษาไทยเช่น ต้องขโมยของ หรือ ฆ่าคน ถึงจะติดคุก ( ต้องเป็นจริงอย่างใดอย่างหนึ่ง ไม่ว่าจะขโมยของ หรือฆ่าคน )

    เขียนเป็นคำสั่ง if ได้คือ

    if( a == 1 || b == 2){
    }

    สำหรับเงื่อนไขที่มากกว่านั้น ก็สามารถทำได้ ซึ่งอาจจะใช้วงเล็บช่วยก้ได้ เช่น

    if((a==1 && b==2) ||  c==3 || n==4 && b==5 ){
    }

    จะซับซ้อนกี่อันก้ได้ ขึ้นอยุ่กับวงเล็บด้วย

    PHP or กำหนดเงื่อนไข ‘หรือ’ Syntax

    <?php
    $expression1 or $expression2 ...
    ?>
    Sample
    <?php
     $i=2;
     $y=3;
     if($i == 2 or $y == 3)
     {
      echo "Yes \$i = 2 or \$y = 3";
     }
     else
     {
      echo "No \$i != 2 or \$y != 3";
     }
    ?>

    PHP and กำหนดเงื่อนไข ‘และ’

    Syntax

    <?php
    $expression1 and $expression2 ...
    ?>

    Sample

    <?php
     $i=2;
     $y=3;
     if($i == 2 and $y == 3)
     {
      echo "Yes \$i = 2 and \$y = 3";
     }
     else
     {
      echo "No \$i != 2 and \$y != 3";
     }
    ?>

    PHP exit() หยุดการทำงานและโปรเซสทั้งหมด
    Syntax

    <?php
    exit();
    ?>

    Sample

    <?php
    echo "ThaiCreate.Com line 1"."<br>";
    echo "ThaiCreate.Com line 2"."<br>";
    exit();
    echo "ThaiCreate.Com line 3"."<br>";
    echo "ThaiCreate.Com line 4"."<br>";
    ?>

    $val = ‘xXx’; // โหลดขอมูลมาสักที่ return data ถ้ามี ถ้าไม่มี return false
    //…. TO DO set $var = boolean
    // รูปแบบแต่ก่อนที่ใช้กัน
    if ($val)
    $result = $val;
    else
    $result = ‘Fail’;

    // รูปแบบที่นิยมใช้กันตั้งแต่ปี 2010 ถึงปัจจุบัน
    $result = $val ? $val : ‘Fail’;
    // ซึ่งสามารถ ซ้อนเงื่อนไปได้อีกเรื่อยๆ โดยใช้ () $result = $val ? ($xx ? ‘DATA’ : false) : ‘Fail’;

    // ถ้าเกิดจะใช้รูปแบบ $result = $val ? $val : ‘Fail’; สามารถทำให้สั้นลงไปอีกโดยใช้ ?:
    $result = $val ?: ‘Fail’;



เวอไนน์ไอคอร์ส

ประหยัดเวลากว่า 100 เท่า!






เวอไนน์เว็บไซต์⚡️
สร้างเว็บไซต์ ดูแลเว็บไซต์

Categories