មេរៀនទី ២: PHP Control Structures & Functions
- យល់ដឹងពីរចនាសម្ព័ន្ធគ្រប់គ្រង (Control Structures) ក្នុង PHP រួមមាន conditional statements និង loops
- ចេះប្រើប្រាស់ conditional statements (if, else, switch) ក្នុងកម្មវិធី PHP
- ចេះប្រើប្រាស់ loops ដូចជា for, while, និង foreach ដើម្បីដំណើរការទិន្នន័យដដែលៗ
- យល់ដឹងពីរបៀបបង្កើត និងប្រើប្រាស់ functions ក្នុង PHP
- សាកល្បងប្រើប្រាស់ built-in functions របស់ PHP សម្រាប់កិច្ចការទូទៅ
- ចេះបង្កើត និងប្រើប្រាស់ user-defined functions ដើម្បីកាត់បន្ថយការសរសេរកូដដដែលៗ
- អនុវត្តជំនាញទាំងនេះដើម្បីបង្កើតកម្មវិធីគណនាលេខងាយៗ
Conditional statements អនុញ្ញាតឱ្យអ្នកប្រតិបត្តិកូដដោយផ្អែកលើលក្ខខណ្ឌជាក់លាក់។ PHP មាន conditional statements ដូចខាងក្រោម:
if
statement ប្រតិបត្តិកូដប្រសិនបើលក្ខខណ្ឌមានតម្លៃ true:
<?php
$score = 85;
if ($score >= 60) {
echo "អ្នកបានជាប់!";
}
?>
if...else
ប្រតិបត្តិកូដមួយប្រសិនបើលក្ខខណ្ឌជា true ហើយកូដផ្សេងទៀតប្រសិនបើលក្ខខណ្ឌជា false:
<?php
$score = 55;
if ($score >= 60) {
echo "អ្នកបានជាប់!";
} else {
echo "អ្នកបានធ្លាក់។ សូមព្យាយាមម្តងទៀត។";
}
?>
if...elseif...else
អនុញ្ញាតឱ្យអ្នកពិនិត្យលក្ខខណ្ឌច្រើនជាបន្តបន្ទាប់:
<?php
$score = 85;
if ($score >= 90) {
echo "ពិន្ទុរបស់អ្នក: A";
} elseif ($score >= 80) {
echo "ពិន្ទុរបស់អ្នក: B";
} elseif ($score >= 70) {
echo "ពិន្ទុរបស់អ្នក: C";
} elseif ($score >= 60) {
echo "ពិន្ទុរបស់អ្នក: D";
} else {
echo "ពិន្ទុរបស់អ្នក: F";
}
?>
អ្នកអាចដាក់ if statements ក្នុង if statements ផ្សេងទៀត:
<?php
$score = 85;
$attendance = 90;
if ($score >= 60) {
echo "អ្នកបានជាប់ការប្រលង! ";
if ($attendance >= 80) {
echo "អ្នកក៏មានវត្តមានល្អផងដែរ!";
} else {
echo "ប៉ុន្តែអ្នកគួរតែកែលម្អវត្តមាន។";
}
} else {
echo "អ្នកបានធ្លាក់ការប្រលង។";
}
?>
Ternary operator ផ្តល់នូវវិធីសាស្ត្រខ្លីនៃការសរសេរ if...else statement:
<?php
$score = 85;
// ទម្រង់: (condition) ? (value if true) : (value if false)
$result = ($score >= 60) ? "ជាប់" : "ធ្លាក់";
echo "លទ្ធផល: $result";
?>
switch
statement ប្រើប្រាស់ដើម្បីធ្វើការប្រៀបធៀបតម្លៃជាមួយករណីជាច្រើន:
<?php
$day = 3;
switch ($day) {
case 1:
echo "ថ្ងៃចន្ទ";
break;
case 2:
echo "ថ្ងៃអង្គារ";
break;
case 3:
echo "ថ្ងៃពុធ";
break;
case 4:
echo "ថ្ងៃព្រហស្បតិ៍";
break;
case 5:
echo "ថ្ងៃសុក្រ";
break;
case 6:
echo "ថ្ងៃសៅរ៍";
break;
case 7:
echo "ថ្ងៃអាទិត្យ";
break;
default:
echo "ថ្ងៃមិនត្រឹមត្រូវ";
}
?>
ពាក្យបញ្ជា break
ប្រើដើម្បីបញ្ឈប់ការប្រតិបត្តិបន្ទាប់ពីរកឃើញករណីដែលត្រូវគ្នា។ ប្រសិនបើគ្មាន break
ទេ វានឹងបន្តប្រតិបត្តិករណីផ្សេងទៀតរហូតដល់ឃើញ break
ឬដល់ចុងនៃ switch statement។
ករណី default
នឹងត្រូវប្រតិបត្តិប្រសិនបើគ្មានករណីណាត្រូវគ្នា។
<?php
$age = 17;
$hasParent = true;
if ($age >= 18) {
echo "អ្នកអាចចូលបានដោយសេរី!";
} elseif ($age >= 13 && $hasParent) {
echo "អ្នកអាចចូលបានដោយមានការអមដំណើរពីឪពុកម្តាយ។";
} elseif ($age >= 13 && !$hasParent) {
echo "អ្នកត្រូវការឪពុកម្តាយអមដំណើរ។";
} else {
echo "សូមអភ័យទោស អ្នកមានអាយុក្មេងពេកដើម្បីចូល។";
}
// បង្ហាញតម្លៃសំបុត្រដោយប្រើ switch
$ticketType = "";
switch (true) {
case ($age < 6):
$ticketType = "ឥតគិតថ្លៃ";
break;
case ($age >= 6 && $age <= 12):
$ticketType = "សំបុត្រកុមារ";
break;
case ($age >= 13 && $age <= 17):
$ticketType = "សំបុត្រយុវវ័យ";
break;
case ($age >= 18 && $age <= 59):
$ticketType = "សំបុត្រមនុស្សពេញវ័យ";
break;
default:
$ticketType = "សំបុត្រជនចាស់ជរា";
}
echo "<br>ប្រភេទសំបុត្ររបស់អ្នក: $ticketType";
?>
Loops អនុញ្ញាតឱ្យអ្នកប្រតិបត្តិកូដដដែលៗដោយផ្អែកលើលក្ខខណ្ឌ ឬចំនួនដង។ PHP មាន loop ប្រភេទផ្សេងៗគ្នា:
for
loop ប្រើសម្រាប់ប្រតិបត្តិកូដចំនួនដងជាក់លាក់:
<?php
// បង្ហាញលេខពី 1 ដល់ 5
for ($i = 1; $i <= 5; $i++) {
echo "លេខ: $i <br>";
}
?>
for
loop មានផ្នែកបី:
- ការចាប់ផ្តើម:
$i = 1
(អនុវត្តម្តងនៅពេលចាប់ផ្តើម loop) - លក្ខខណ្ឌ:
$i <= 5
(ត្រួតពិនិត្យមុនពេលប្រតិបត្តិ loop នីមួយៗ) - ការធ្វើឱ្យទាន់សម័យ:
$i++
(អនុវត្តបន្ទាប់ពីប្រតិបត្តិ loop នីមួយៗ)
while
loop ប្រតិបត្តិកូដដរាបណាលក្ខខណ្ឌមានតម្លៃជា true:
<?php
$i = 1;
// បង្ហាញលេខពី 1 ដល់ 5
while ($i <= 5) {
echo "លេខ: $i <br>";
$i++;
}
?>
do...while
loop ដូច while
loop ប៉ុន្តែលក្ខខណ្ឌត្រូវបានត្រួតពិនិត្យនៅចុងបញ្ចប់នៃ loop។ នេះធានាថា loop ត្រូវបានប្រតិបត្តិយ៉ាងហោចណាស់ម្តង:
<?php
$i = 1;
// បង្ហាញលេខពី 1 ដល់ 5
do {
echo "លេខ: $i <br>";
$i++;
} while ($i <= 5);
?>
សូម្បីតែប្រសិនបើលក្ខខណ្ឌមិនពិតនៅពេលចាប់ផ្តើម loop ក៏អនុវត្តយ៉ាងហោចណាស់ម្តងដែរ:
<?php
$i = 6;
// នឹងអនុវត្តម្តង ទោះបីជា $i > 5 ក៏ដោយ
do {
echo "លេខ: $i <br>";
$i++;
} while ($i <= 5);
?>
foreach
loop ប្រើសម្រាប់ loop តាម arrays:
<?php
$colors = ["ក្រហម", "ខៀវ", "បៃតង", "លឿង"];
// បង្ហាញធាតុទាំងអស់ក្នុង array
foreach ($colors as $color) {
echo "ពណ៌: $color <br>";
}
?>
សម្រាប់ associative arrays អ្នកអាចទាញយកទាំង keys និង values:
<?php
$person = [
"name" => "សុខា",
"age" => 25,
"city" => "ភ្នំពេញ"
];
// បង្ហាញ keys និង values
foreach ($person as $key => $value) {
echo "$key: $value <br>";
}
?>
break
ប្រើដើម្បីបញ្ឈប់ loop:
<?php
for ($i = 1; $i <= 10; $i++) {
if ($i == 6) {
break; // បញ្ឈប់ loop នៅពេល $i = 6
}
echo "លេខ: $i <br>";
}
?>
continue
ប្រើដើម្បីរំលងការប្រតិបត្តិកូដដែលនៅសល់ក្នុង loop បច្ចុប្បន្ន ហើយបន្តទៅ iteration បន្ទាប់:
<?php
for ($i = 1; $i <= 10; $i++) {
if ($i == 6) {
continue; // រំលងនៅពេល $i = 6
}
echo "លេខ: $i <br>";
}
?>
<?php
echo "<h2>តារាងគុណ</h2>";
echo "<table border='1'>";
// បង្កើតកំណត់
echo "<tr><th>×</th>";
for ($i = 1; $i <= 10; $i++) {
echo "<th>$i</th>";
}
echo "</tr>";
// បង្កើតជួរដេក
for ($i = 1; $i <= 10; $i++) {
echo "<tr>";
echo "<th>$i</th>";
// បង្កើតជួរឈរ
for ($j = 1; $j <= 10; $j++) {
echo "<td>" . ($i * $j) . "</td>";
}
echo "</tr>";
}
echo "</table>";
?>
Functions ជួយអ្នកក្នុងការរៀបចំកូដជាប្លុកដែលអាចប្រើប្រាស់ឡើងវិញបាន។ វាធ្វើឱ្យកូដរបស់អ្នកកាន់តែមានរចនាសម្ព័ន្ធល្អ មានប្រសិទ្ធភាព និងងាយស្រួលថែទាំ។
Function គឺជាប្លុកកូដដែលអនុវត្តកិច្ចការជាក់លាក់។ វាអាចទទួលយកទិន្នន័យ (parameters) ដំណើរការទិន្នន័យ និងត្រឡប់លទ្ធផលត្រឡប់មកវិញ។
- ភាពអាចប្រើឡើងវិញបាន: អ្នកអាចកំណត់កូដម្តង ហើយប្រើវាច្រើនដង
- ភាពងាយស្រួលក្នុងការអាន: Functions ធ្វើឱ្យកូដអាចអានបានច្បាស់ជាង
- ភាពងាយស្រួលក្នុងការថែទាំ: ប្រសិនបើអ្នកត្រូវផ្លាស់ប្តូរកូដ អ្នកធ្វើវានៅកន្លែងតែមួយ
- ភាពច្បាស់លាស់: Functions ផ្តល់នូវការរៀបចំដែលងាយយល់
- Abstraction: លាក់ភាពស្មុគស្មាញរបស់កូដ
PHP មាន built-in functions ជាច្រើន។ ទាំងនេះគឺជា functions ដែលបានកំណត់ជាមុនដែលអ្នកអាចប្រើដើម្បីអនុវត្តកិច្ចការទូទៅ។
<?php
$text = "Hello, World!";
// រកប្រវែង string
echo strlen($text); // 13
// រាប់ចំនួនពាក្យ
echo str_word_count($text); // 2
// ប្រែក្លាយទៅជាអក្សរតូច
echo strtolower($text); // hello, world!
// ប្រែក្លាយទៅជាអក្សរធំ
echo strtoupper($text); // HELLO, WORLD!
// ប្តូរអក្សរ
echo str_replace("World", "PHP", $text); // Hello, PHP!
// កាត់ string
echo substr($text, 0, 5); // Hello
// ផ្គុំ array ឱ្យក្លាយជា string
$arr = ["Hello", "World", "PHP"];
echo implode(" ", $arr); // Hello World PHP
// បំបែក string ទៅជា array
$str = "Hello,World,PHP";
$arr = explode(",", $str);
print_r($arr); // Array ( [0] => Hello [1] => World [2] => PHP )
?>
<?php
// បង្គត់លេខឡើង
echo round(3.7); // 4
// បង្គត់លេខចុះ
echo floor(3.7); // 3
// បង្គត់លេខឡើង
echo ceil(3.3); // 4
// តម្លៃដាច់ខាត (តម្លៃវិជ្ជមាន)
echo abs(-15); // 15
// square root
echo sqrt(16); // 4
// លេខចៃដន្យ
echo rand(1, 10); // លេខចៃដន្យចន្លោះ 1 និង 10
?>
<?php
$fruits = ["Apple", "Banana", "Orange", "Mango"];
// ចំនួនធាតុក្នុង array
echo count($fruits); // 4
// ពិនិត្យថាតើធាតុមានក្នុង array ឬអត់
echo in_array("Apple", $fruits); // 1 (true)
// បន្ថែមធាតុទៅចុង array
array_push($fruits, "Grape");
print_r($fruits); // Array ( [0] => Apple [1] => Banana [2] => Orange [3] => Mango [4] => Grape )
// លុបធាតុចុងក្រោយនៃ array
$last = array_pop($fruits);
echo $last; // Grape
// តម្រៀប array
sort($fruits);
print_r($fruits); // Array ( [0] => Apple [1] => Banana [2] => Mango [3] => Orange )
// ត្រឡប់ array
$reversed = array_reverse($fruits);
print_r($reversed); // Array ( [0] => Orange [1] => Mango [2] => Banana [3] => Apple )
// បំប្លែង array ទៅជា string
echo implode(", ", $fruits); // Apple, Banana, Mango, Orange
?>
<?php
// បង្ហាញកាលបរិច្ឆេទបច្ចុប្បន្ន
echo date("Y-m-d"); // e.g., 2023-07-10
// បង្ហាញពេលវេលាបច្ចុប្បន្ន
echo date("H:i:s"); // e.g., 15:30:45
// បង្ហាញកាលបរិច្ឆេទនិងពេលវេលាបច្ចុប្បន្ន
echo date("Y-m-d H:i:s"); // e.g., 2023-07-10 15:30:45
// បង្ហាញថ្ងៃនៃសប្តាហ៍
echo date("l"); // e.g., Monday
// ទាញយកពេលវេលា Unix timestamp
echo time(); // e.g., 1689013845
// បង្កើតកាលបរិច្ឆេទជាក់លាក់
echo mktime(14, 30, 0, 7, 10, 2023); // បង្កើត timestamp សម្រាប់ July 10, 2023 14:30:00
// គណនាចន្លោះពេល
$date1 = strtotime("2023-07-01");
$date2 = strtotime("2023-07-10");
$diff = $date2 - $date1;
echo "ចន្លោះពេល: " . ($diff / 86400) . " ថ្ងៃ"; // 9 ថ្ងៃ (86400 វិនាទីក្នុងមួយថ្ងៃ)
?>
<?php
// អានឯកសារ
$content = file_get_contents("example.txt");
echo $content;
// សរសេរទៅក្នុងឯកសារ
file_put_contents("example.txt", "Hello, this is a test!");
// ពិនិត្យថាតើឯកសារមានឬអត់
if (file_exists("example.txt")) {
echo "ឯកសារមាន!";
}
// ទាញយកទំហំឯកសារ
echo filesize("example.txt"); // e.g., 22 bytes
// ចម្លងឯកសារ
copy("example.txt", "example_backup.txt");
// ផ្លាស់ទីឯកសារ
rename("example.txt", "new_example.txt");
// លុបឯកសារ
unlink("new_example.txt");
?>
អ្នកអាចបង្កើត functions ផ្ទាល់ខ្លួនបានដោយប្រើពាក្យគន្លឹះ function
:
<?php
// កំណត់ function
function sayHello() {
echo "សួស្តី!";
}
// ហៅ function
sayHello(); // បង្ហាញ: សួស្តី!
?>
<?php
// function ជាមួយ parameter មួយ
function greet($name) {
echo "សួស្តី, $name!";
}
greet("សុខា"); // បង្ហាញ: សួស្តី, សុខា!
// function ជាមួយ parameters ច្រើន
function add($a, $b) {
$sum = $a + $b;
echo "$a + $b = $sum";
}
add(5, 3); // បង្ហាញ: 5 + 3 = 8
?>
<?php
function greet($name = "ភ្ញៀវ") {
echo "សួស្តី, $name!";
}
greet(); // បង្ហាញ: សួស្តី, ភ្ញៀវ!
greet("សុខា"); // បង្ហាញ: សួស្តី, សុខា!
?>
<?php
function add($a, $b) {
return $a + $b;
}
$result = add(5, 3);
echo "លទ្ធផល: $result"; // បង្ហាញ: លទ្ធផល: 8
// function ដែលត្រឡប់ results ច្រើន
function getMinMax($numbers) {
return [
'min' => min($numbers),
'max' => max($numbers)
];
}
$numbers = [5, 10, 15, 20, 25];
$result = getMinMax($numbers);
echo "តម្លៃអប្បបរមា: " . $result['min'] . ", តម្លៃអតិបរមា: " . $result['max'];
// បង្ហាញ: តម្លៃអប្បបរមា: 5, តម្លៃអតិបរមា: 25
?>
Variables នៅក្នុង function មាន local scope ដែលមានន័យថាវាអាចចូលប្រើបានតែនៅក្នុង function ប៉ុណ្ណោះ:
<?php
$globalVar = "ខ្ញុំជា global variable";
function testScope() {
$localVar = "ខ្ញុំជា local variable";
echo $localVar . "<br>"; // អាចចូលប្រើបាន
// ដើម្បីចូលប្រើ global variable នៅក្នុង function
global $globalVar;
echo $globalVar . "<br>"; // អាចចូលប្រើបានបន្ទាប់ពីប្រកាស global
}
testScope();
echo $globalVar . "<br>"; // អាចចូលប្រើបាន
// echo $localVar; // កំហុស - $localVar មិនបានកំណត់នៅក្រៅ function
?>
Recursive function គឺជា function ដែលហៅខ្លួនវា:
<?php
// គណនា factorial របស់លេខមួយ
function factorial($n) {
if ($n <= 1) {
return 1;
} else {
return $n * factorial($n - 1);
}
}
echo factorial(5); // 5 * 4 * 3 * 2 * 1 = 120
?>
Anonymous functions គឺជា functions ដែលគ្មានឈ្មោះ:
<?php
// រក្សាទុក anonymous function ក្នុងអថេរមួយ
$greet = function($name) {
return "សួស្តី, $name!";
};
echo $greet("សុខា"); // បង្ហាញ: សួស្តី, សុខា!
// ប្រើជាមួយ array functions
$numbers = [1, 2, 3, 4, 5];
$squared = array_map(function($n) {
return $n * $n;
}, $numbers);
print_r($squared); // Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 [4] => 25 )
?>
<?php
// ពន្ធទំនិញនៅកម្ពុជា (VAT 10%)
function calculateVAT($price) {
$vatRate = 0.1; // 10%
$vatAmount = $price * $vatRate;
return $vatAmount;
}
// គណនាតម្លៃតែមួយរួមពន្ធ
function calculatePriceWithVAT($price) {
$vatAmount = calculateVAT($price);
$totalPrice = $price + $vatAmount;
return $totalPrice;
}
// គណនាតម្លៃសរុបសម្រាប់ទំនិញច្រើន
function calculateTotalPrice($items) {
$subtotal = 0;
foreach ($items as $item) {
$subtotal += $item['price'] * $item['quantity'];
}
$vatAmount = calculateVAT($subtotal);
$totalPrice = $subtotal + $vatAmount;
return [
'subtotal' => $subtotal,
'vat' => $vatAmount,
'total' => $totalPrice
];
}
// ឧទាហរណ៍៖ ការគណនាតម្លៃទំនិញ
$price = 100;
echo "តម្លៃដើម: $price<br>";
echo "ពន្ធអាករ: " . calculateVAT($price) . "<br>";
echo "តម្លៃរួមពន្ធ: " . calculatePriceWithVAT($price) . "<br>";
// ឧទាហរណ៍៖ ការគណនាវិក័យប័ត្រ
$shoppingCart = [
['name' => 'ទូរស័ព្ទដៃ', 'price' => 200, 'quantity' => 1],
['name' => 'កាស', 'price' => 50, 'quantity' => 2],
['name' => 'ប៊ិច', 'price' => 2, 'quantity' => 5]
];
$result = calculateTotalPrice($shoppingCart);
echo "<h3>លម្អិតវិក័យប័ត្រ</h3>";
echo "តម្លៃទំនិញសរុប: $" . $result['subtotal'] . "<br>";
echo "ពន្ធអាករ: $" . $result['vat'] . "<br>";
echo "តម្លៃសរុប: $" . $result['total'];
?>
ក្នុង Lab នេះ យើងនឹងបង្កើតកម្មវិធីគណនាលេខធម្មតា (Simple Calculator) ដោយប្រើ PHP functions។
- អនុវត្តការប្រើប្រាស់ if-else statements និង switch statements
- អនុវត្តការបង្កើត និងហៅប្រើ functions ផ្ទាល់ខ្លួន
- អនុវត្តការប្រើប្រាស់ HTML forms ជាមួយ PHP
បង្កើតឯកសារ calculator.php
ជាមួយ HTML form និង កូដ PHP:
<!DOCTYPE html>
<html>
<head>
<title>កម្មវិធីគណនាលេខងាយៗ</title>
<style>
body {
font-family: Arial, sans-serif;
max-width: 600px;
margin: 0 auto;
padding: 20px;
}
.calculator {
background-color: #f5f5f5;
border-radius: 5px;
padding: 20px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
h1 {
text-align: center;
color: #333;
}
.form-group {
margin-bottom: 15px;
}
label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
input[type="number"], select {
width: 100%;
padding: 8px;
border: 1px solid #ddd;
border-radius: 4px;
box-sizing: border-box;
}
button {
background-color: #4CAF50;
color: white;
padding: 10px 15px;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 16px;
}
button:hover {
background-color: #45a049;
}
.result {
margin-top: 20px;
padding: 15px;
background-color: #e9f7ef;
border-radius: 4px;
border-left: 5px solid #4CAF50;
}
</style>
</head>
<body>
<div class="calculator">
<h1>កម្មវិធីគណនាលេខងាយៗ</h1>
<form method="post" action="">
<div class="form-group">
<label for="num1">លេខទី១:</label>
<input type="number" id="num1" name="num1" required step="any" value="<?php echo isset($_POST['num1']) ? $_POST['num1'] : ''; ?>">
</div>
<div class="form-group">
<label for="num2">លេខទី២:</label>
<input type="number" id="num2" name="num2" required step="any" value="<?php echo isset($_POST['num2']) ? $_POST['num2'] : ''; ?>">
</div>
<div class="form-group">
<label for="operation">ជ្រើសរើសប្រមាណវិធី:</label>
<select id="operation" name="operation">
<option value="add" <?php echo (isset($_POST['operation']) && $_POST['operation'] == 'add') ? 'selected' : ''; ?>>បូក (+)</option>
<option value="subtract" <?php echo (isset($_POST['operation']) && $_POST['operation'] == 'subtract') ? 'selected' : ''; ?>>ដក (-)</option>
<option value="multiply" <?php echo (isset($_POST['operation']) && $_POST['operation'] == 'multiply') ? 'selected' : ''; ?>>គុណ (×)</option>
<option value="divide" <?php echo (isset($_POST['operation']) && $_POST['operation'] == 'divide') ? 'selected' : ''; ?>>ចែក (÷)</option>
<option value="power" <?php echo (isset($_POST['operation']) && $_POST['operation'] == 'power') ? 'selected' : ''; ?>>ស្វ័យគុណ (^)</option>
<option value="modulus" <?php echo (isset($_POST['operation']) && $_POST['operation'] == 'modulus') ? 'selected' : ''; ?>>មូឌុល (%)</option>
</select>
</div>
<button type="submit" name="calculate">គណនា</button>
</form>
<?php
// កំណត់ functions សម្រាប់ប្រមាណវិធីផ្សេងៗ
function add($a, $b) {
return $a + $b;
}
function subtract($a, $b) {
return $a - $b;
}
function multiply($a, $b) {
return $a * $b;
}
function divide($a, $b) {
if ($b == 0) {
return "មិនអាចចែកនឹងលេខសូន្យបានទេ";
}
return $a / $b;
}
function power($a, $b) {
return pow($a, $b);
}
function modulus($a, $b) {
if ($b == 0) {
return "មិនអាចរកមូឌុលនឹងលេខសូន្យបានទេ";
}
return $a % $b;
}
// ដំណើរការការគណនានៅពេលចុចប៊ូតុង
if (isset($_POST['calculate'])) {
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$operation = $_POST['operation'];
$result = 0;
$operationSymbol = "";
// ប្រើប្រាស់ switch statement ដើម្បីជ្រើសរើសប្រមាណវិធី
switch ($operation) {
case 'add':
$result = add($num1, $num2);
$operationSymbol = "+";
break;
case 'subtract':
$result = subtract($num1, $num2);
$operationSymbol = "-";
break;
case 'multiply':
$result = multiply($num1, $num2);
$operationSymbol = "×";
break;
case 'divide':
$result = divide($num1, $num2);
$operationSymbol = "÷";
break;
case 'power':
$result = power($num1, $num2);
$operationSymbol = "^";
break;
case 'modulus':
$result = modulus($num1, $num2);
$operationSymbol = "%";
break;
default:
$result = "ប្រមាណវិធីមិនត្រឹមត្រូវ";
}
// បង្ហាញលទ្ធផល
echo '<div class="result">';
echo "<h3>លទ្ធផល:</h3>";
if (is_numeric($result)) {
echo "$num1 $operationSymbol $num2 = $result";
} else {
echo $result; // បង្ហាញសារកំហុស
}
echo '</div>';
}
?>
</div>
</body>
</html>
- រក្សាទុកឯកសារនៅក្នុងថត htdocs (XAMPP) ឬ www (WAMP)
- បើក Browser ហើយចូលទៅកាន់ http://localhost/calculator.php
- សាកល្បងប្រើកម្មវិធីគណនាដោយបញ្ចូលលេខ និងជ្រើសរើសប្រមាណវិធីផ្សេងៗ
បន្ថែមមុខងារដូចខាងក្រោមទៅកាន់កម្មវិធីគណនា:
បន្ថែមពណ៌ផ្សេងៗទៅលើលទ្ធផលដោយផ្អែកលើតម្លៃលទ្ធផល:
- លទ្ធផលវិជ្ជមាន: ពណ៌បៃតង
- លទ្ធផលអវិជ្ជមាន: ពណ៌ក្រហម
- លទ្ធផលសូន្យ: ពណ៌ខៀវ
បន្ថែមប្រមាណវិធីថ្មីដូចជា:
- គណនាឫសការ៉េ (Square Root)
- គណនា Factorial
- គណនា sin, cos, tan
បន្ទាប់ពីបានសិក្សាពី PHP Control Structures និង Functions យើងនឹងរៀបចំគម្រោងផ្ទាល់ខ្លួនមួយចំនួនដើម្បីអនុវត្តចំណេះដឹង:
បង្កើតកម្មវិធីគ្រប់គ្រងសិស្សសាមញ្ញមួយដោយប្រើ PHP Control Structures និង Functions:
- បង្កើតទម្រង់សម្រាប់បញ្ចូលព័ត៌មានសិស្ស (ឈ្មោះ, អាយុ, ពិន្ទុវិញ្ញាសាច្រើន)
- បង្កើត functions ដើម្បី:
- គណនាពិន្ទុមធ្យមរបស់សិស្សម្នាក់ៗ
- កំណត់ពិន្ទុអក្សរ (A, B, C, D, F) ដោយផ្អែកលើពិន្ទុមធ្យម
- បង្ហាញព័ត៌មានសិស្សទាំងអស់ជាទម្រង់តារាង
- រកសិស្សដែលមានពិន្ទុខ្ពស់បំផុត និងទាបបំផុត
- ប្រើ loops ដើម្បីដំណើរការសិស្សច្រើននាក់
- ប្រើ conditional statements ដើម្បីបង្ហាញពណ៌ផ្សេងៗគ្នាតាមពិន្ទុ
បង្កើតកម្មវិធីគ្រប់គ្រងសារពើភណ្ឌទំនិញសាមញ្ញដោយប្រើ PHP Control Structures និង Functions:
- បង្កើតទម្រង់សម្រាប់បញ្ចូលព័ត៌មានទំនិញ (ឈ្មោះ, តម្លៃ, ចំនួនក្នុងស្តុក)
- បង្កើត functions ដើម្បី:
- បន្ថែមទំនិញថ្មី
- ធ្វើបច្ចុប្បន្នភាពចំនួនទំនិញក្នុងស្តុក
- គណនាតម្លៃសរុបនៃទំនិញទាំងអស់ក្នុងស្តុក
- ពិនិត្យមើលទំនិញដែលជិតអស់ស្តុក (តិចជាង 5 ឯកតា)
- ប្រើ loops ដើម្បីដំណើរការទំនិញទាំងអស់
- ប្រើ conditional statements ដើម្បីបង្ហាញពណ៌ផ្សេងៗគ្នាតាមស្ថានភាពស្តុក
បង្កើតហ្គេមទាយលេខសាមញ្ញដោយប្រើ PHP Control Structures និង Functions:
- បង្កើតហ្គេមដែលបង្កើតលេខចៃដន្យរវាង 1 និង 100
- អនុញ្ញាតឱ្យអ្នកប្រើទាយលេខ
- បង្កើត functions ដើម្បី:
- ត្រួតពិនិត្យថាតើការទាយត្រឹមត្រូវឬអត់
- ផ្តល់ព័ត៌មានថាតើលេខទាយធំពេក ឬតូចពេក
- រាប់ចំនួនការទាយ
- កំណត់ពិន្ទុដោយផ្អែកលើចំនួនការទាយ
- ប្រើ conditional statements ដើម្បីពិនិត្យការទាយ
- ប្រើ loops ដើម្បីអនុញ្ញាតឱ្យទាយច្រើនដង
នៅក្នុងមេរៀនទី២នេះ យើងបានសិក្សាអំពី Control Structures និង Functions ក្នុង PHP។ យើងបានរៀនពីរបៀបប្រើប្រាស់ if, else, switch statements ដើម្បីគ្រប់គ្រងលំហូរនៃកម្មវិធី និងរបៀបប្រើប្រាស់ loops ដូចជា for, while, និង foreach ដើម្បីប្រតិបត្តិកូដដដែលៗ។
យើងក៏បានស្វែងយល់ពីរបៀបបង្កើត និងប្រើប្រាស់ functions ក្នុង PHP ដើម្បីរៀបចំកូដជាប្លុកដែលអាចប្រើឡើងវិញបាន ហើយបានប្រើប្រាស់ built-in functions ដែលមានស្រាប់ក្នុង PHP។ ជាចុងក្រោយ យើងបានបង្កើតកម្មវិធីគណនាលេខធម្មតា ដោយអនុវត្តចំណេះដឹងទាំងនេះ។
នៅមេរៀនបន្ទាប់ យើងនឹងសិក្សាអំពី HTML Forms និង PHP ដែលនឹងអនុញ្ញាតឱ្យយើងបង្កើតទម្រង់ប្រមូលទិន្នន័យ និងដំណើរការជាមួយ PHP។
- ឯកសារផ្លូវការរបស់ PHP - Control Structures: https://www.php.net/manual/en/language.control-structures.php
- ឯកសារផ្លូវការរបស់ PHP - Functions: https://www.php.net/manual/en/language.functions.php
- W3Schools PHP Tutorial - Conditionals: https://www.w3schools.com/php/php_if_else.asp
- W3Schools PHP Tutorial - Loops: https://www.w3schools.com/php/php_looping.asp
- W3Schools PHP Tutorial - Functions: https://www.w3schools.com/php/php_functions.asp