📘 PHP Beginner Course

លំហាត់ PHP សម្រាប់អ្នកចាប់ផ្តើម | រកតម្លៃធំបំផុត • គូរ-សេស • អាកាសធាតុ • គណនាការហៅទូរស័ព្ទ

រៀនសរសេរកូដ PHP តាមរយៈលំហាត់ជាក់ស្តែង ៥ សំណួរ

១. រកតម្លៃធំបំផុត (៣) ២. រកតម្លៃធំបំផុត (៥) ៣. គូរ-សេស ៤. អាកាសធាតុ ៥. គណនាការហៅទូរស័ព្ទ

រកតម្លៃធំបំផុតក្នុងចំណោម ៣ តម្លៃ

📋 បញ្ហា / សំណួរ

មានអថេរ ៣ គឺ $a = 10, $b = 30, $c = 25

សូមសរសេរកូដ PHP ដើម្បីរកតម្លៃដែលធំជាងគេក្នុងចំណោមអថេរទាំង ៣ នេះ។

💻 គំរូកូដ (Sample Code)

<?php
    $a = 10;
    $b = 30;
    $c = 25;

    // វិធីទី ១: ប្រើ if-elseif-else
    if ($a > $b && $a > $c) {
        $max = $a;
    } elseif ($b > $a && $b > $c) {
        $max = $b;
    } else {
        $max = $c;
    }

    echo "តម្លៃធំបំផុតក្នុងចំណោម ($a, $b, $c) គឺ: $max";

    // វិធីទី ២: ប្រើ max() function
    echo "<br>";
    echo "ប្រើ max(): " . max($a, $b, $c);
?>

លទ្ធផលដែលរំពឹងទុក (Expected Output)

តម្លៃធំបំផុតក្នុងចំណោម (10, 30, 25) គឺ: 30

ប្រើ max(): 30

✏️ លំហាត់សម្រាប់អនុវត្ត (Practice)

🔹 សាកល្បងផ្លាស់ប្តូរតម្លៃ $a = 50, $b = 20, $c = 35 មើលលទ្ធផល

🔹 សាកល្បងដាក់ តម្លៃស្មើគ្នា ដូចជា $a = $b = $c = 10

🔹 សាកល្បងប្រើតម្លៃអវិជ្ជមាន (negative) ដូចជា $a = -5

រកតម្លៃធំបំផុតក្នុងចំណោម ៥ តម្លៃ

📋 បញ្ហា / សំណួរ

មានអថេរ ៥ គឺ $a = 10, $b = 30, $c = 25, $d = 50, $e = 40

សូមរកតម្លៃដែលធំជាងគេក្នុងចំណោមអថេរទាំង ៥ នេះ។

💻 គំរូកូដ (Sample Code)

<?php
    $a = 10;
    $b = 30;
    $c = 25;
    $d = 50;
    $e = 40;

    // វិធីទី ១: ប្រើអថេរ $max ដើម្បីប្រៀបធៀបម្តងមួយៗ
    $max = $a;

    if ($b > $max) $max = $b;
    if ($c > $max) $max = $c;
    if ($d > $max) $max = $d;
    if ($e > $max) $max = $e;

    echo "តម្លៃធំបំផុតក្នុងចំណោម ($a, $b, $c, $d, $e) គឺ: $max";

    // វិធីទី ២: ប្រើ max() function
    echo "<br>";
    echo "ប្រើ max(): " . max($a, $b, $c, $d, $e);

    // វិធីទី ៣: ប្រើ array
    echo "<br>";
    $numbers = [$a, $b, $c, $d, $e];
    echo "ប្រើ array + max(): " . max($numbers);
?>

លទ្ធផលដែលរំពឹងទុក (Expected Output)

តម្លៃធំបំផុតក្នុងចំណោម (10, 30, 25, 50, 40) គឺ: 50

ប្រើ max(): 50

ប្រើ array + max(): 50

✏️ លំហាត់សម្រាប់អនុវត្ត (Practice)

🔹 សាកល្បងផ្លាស់ប្តូរតម្លៃ $a = 100 មើលថាតើវាផ្លាស់ប្តូរលទ្ធផលដែរឬទេ

🔹 សាកល្បងរកតម្លៃ តូចបំផុត ដោយប្រើ min()

🔹 សាកល្បងបន្ថែមអថេរទី ៦ ទី ៧ ... មើលថាកូដនៅដំណើរការដែរឬទេ

ពិនិត្យថាតើ $x ជាចំនួនគូរ (Even) ឬ សេស (Odd)

📋 បញ្ហា / សំណួរ

មានអថេរ $x = 5

សូមពិនិត្យមើលថាតើ $x ជាចំនួនគូរ (even - ចែកនឹង ២ សល់ ០) ឬ ជាចំនួនសេស (odd - ចែកនឹង ២ សល់ ១)។

ចំណាំ: យើងប្រើសញ្ញា % (modulus) ដើម្បីរកសំណល់នៃការចែក។

$x % 2 == 0 → ចំនួនគូរ

$x % 2 != 0 → ចំនួនសេស

💻 គំរូកូដ (Sample Code)

<?php
    $x = 5;

    if ($x % 2 == 0) {
        echo "$x ជាចំនួនគូរ (Even)";
    } else {
        echo "$x ជាចំនួនសេស (Odd)";
    }

    // ឧទាហរណ៍បន្ថែម: ពិនិត្យលេខច្រើន
    echo "<br><br>";
    echo "=== ពិនិត្យលេខពី ១ ដល់ ១០ ===<br>";
    for ($i = 1; $i <= 10; $i++) {
        if ($i % 2 == 0) {
            echo "$i → គូរ (Even)<br>";
        } else {
            echo "$i → សេស (Odd)<br>";
        }
    }
?>

លទ្ធផលដែលរំពឹងទុក (Expected Output)

5 ជាចំនួនសេស (Odd)


=== ពិនិត្យលេខពី ១ ដល់ ១០ ===

1 → សេស (Odd)

2 → គូរ (Even)

3 → សេស (Odd)

4 → គូរ (Even)

5 → សេស (Odd)

6 → គូរ (Even)

7 → សេស (Odd)

8 → គូរ (Even)

9 → សេស (Odd)

10 → គូរ (Even)

✏️ លំហាត់សម្រាប់អនុវត្ត (Practice)

🔹 សាកល្បងផ្លាស់ប្តូរ $x = 12$x = 99 មើលលទ្ធផល

🔹 សាកល្បងប្រើ $x = 0 តើវាជាគូរ ឬ សេស?

🔹 សាកល្បងប្រើតម្លៃអវិជ្ជមាន ដូចជា $x = -7

បង្ហាញរូបភាពអាកាសធាតុតាមតម្លៃ $weather

📋 បញ្ហា / សំណួរ

តាមតម្លៃអថេរ $weather សូមបង្ហាញរូបភាព និង ឈ្មោះអាកាសធាតុជាភាសាខ្មែរ៖

🌧️
"rainy" raining.jpg + អាកាសធាតុភ្លៀង
☀️
"sunny" sunny.jpg + អាកាសធាតុថ្ងៃស្ងាត់
☁️
"cloudy" cloud.jpg + អាកាសធាតុមានពពក
❄️
"snowy" snow.jpg + អាកាសធាតុព្រិល

បើមិនមែនតម្លៃខាងលើ → បង្ហាញ "Sorry, I don't know about the weather today…!"

💻 គំរូកូដ (Sample Code)

<?php
    $weather = "rainy";

    switch ($weather) {
        case "rainy":
            $image = "raining.jpg";
            $description = "អាកាសធាតុភ្លៀង";
            $emoji = "🌧️";
            break;
        case "sunny":
            $image = "sunny.jpg";
            $description = "អាកាសធាតុថ្ងៃស្ងាត់";
            $emoji = "☀️";
            break;
        case "cloudy":
            $image = "cloud.jpg";
            $description = "អាកាសធាតុមានពពក";
            $emoji = "☁️";
            break;
        case "snowy":
            $image = "snow.jpg";
            $description = "អាកាសធាតុព្រិល";
            $emoji = "❄️";
            break;
        default:
            $image = "";
            $description = "Sorry, I don't know about the weather today…!";
            $emoji = "❓";
            break;
    }

    echo "<h3>$emoji $description</h3>";
    if ($image != "") {
        echo "<img src='$image' alt='$description' width='300'>";
    }
?>

លទ្ធផលដែលរំពឹងទុក (Expected Output)

🌧️ អាកាសធាតុភ្លៀង

រូបភាព: raining.jpg

🌧️

គ្រប់លទ្ធផលដែលអាចមាន៖

🌧️

rainy

អាកាសធាតុភ្លៀង

☀️

sunny

អាកាសធាតុថ្ងៃស្ងាត់

☁️

cloudy

អាកាសធាតុមានពពក

❄️

snowy

អាកាសធាតុព្រិល

✏️ លំហាត់សម្រាប់អនុវត្ត (Practice)

🔹 សាកល្បងផ្លាស់ប្តូរ $weather = "sunny"$weather = "snowy"

🔹 សាកល្បងដាក់តម្លៃមិនត្រឹមត្រូវ ដូចជា $weather = "windy" មើលលទ្ធផល default

🔹 សាកសរសេរកូដឡើងវិញដោយប្រើ if-elseif-else ជំនួស switch

គណនាថ្លៃការហៅទូរស័ព្ទចេញ (រៀល)

📋 បញ្ហា / សំណួរ

គណនាតម្លៃសរុបនៃការហៅទូរស័ព្ទចេញ ដោយផ្អែកលើចំនួននាទី៖

ចំនួននាទី តម្លៃ (រៀល/នាទី)
១ ដល់ ៥ នាទីដំបូង 200 រៀល
នាទីទី ៦ ដល់ ១៥ 300 រៀល
នាទីទី ១៦ ដល់ ៣០ 400 រៀល
នាទីទី ៣១ ឡើងទៅ 500 រៀល

ឧទាហរណ៍: បើនិយាយ ៣៥ នាទី → (5×200) + (10×300) + (15×400) + (5×500) = 11,500 រៀល

💻 គំរូកូដ (Sample Code)

<?php
    $minutes = 35;
    $total_cost = 0;

    if ($minutes <= 0) {
        $total_cost = 0;
    } elseif ($minutes <= 5) {
        // ១ ដល់ ៥ នាទី → 200 រៀល/នាទី
        $total_cost = $minutes * 200;
    } elseif ($minutes <= 15) {
        // ៥ នាទីដំបូង + នាទីបន្ថែមដល់ ១៥
        $total_cost = (5 * 200) + (($minutes - 5) * 300);
    } elseif ($minutes <= 30) {
        // ៥ នាទីដំបូង + ១០ នាទី + នាទីបន្ថែមដល់ ៣០
        $total_cost = (5 * 200) + (10 * 300) + (($minutes - 15) * 400);
    } else {
        // ៥ នាទីដំបូង + ១០ នាទី + ១៥ នាទី + នាទីបន្ថែម
        $total_cost = (5 * 200) + (10 * 300) + (15 * 400) + (($minutes - 30) * 500);
    }

    echo "ចំនួននាទី: $minutes នាទី<br>";
    echo "តម្លៃសរុប: " . number_format($total_cost) . " រៀល";
?>

លទ្ធផលដែលរំពឹងទុក (Expected Output)

📞 ចំនួននាទី: 35 នាទី

💰 តម្លៃសរុប: 12,500 រៀល

ការគណនាលម្អិត (សម្រាប់ 35 នាទី)៖

• ៥ នាទីដំបូង: 5 × 200 = 1,000 រៀល

• នាទីទី ៦-១៥ (10 នាទី): 10 × 300 = 3,000 រៀល

• នាទីទី ១៦-៣០ (15 នាទី): 15 × 400 = 6,000 រៀល

• នាទីទី ៣១+ (5 នាទី): 5 × 500 = 2,500 រៀល


សរុប = 12,500 រៀល

ឧទាហរណ៍បន្ថែម៖

3 នាទី

600 រៀល

10 នាទី

2,500 រៀល

25 នាទី

8,000 រៀល

50 នាទី

20,000 រៀល

✏️ លំហាត់សម្រាប់អនុវត្ត (Practice)

🔹 សាកល្បងផ្លាស់ប្តូរ $minutes = 25$minutes = 5 មើលលទ្ធផល

🔹 សាកល្បង $minutes = 100 ហើយធ្វើការគណនាដោយដៃ ដើម្បីផ្ទៀងផ្ទាត់ចម្លើយ

🔹 សាកល្បងបង្កើត function ដើម្បី reuse កូដ:
function calculateCost($minutes) { ... }