📚 សេចក្តីណែនាំ (Introduction)
សូមស្វាគមន៍មកកាន់មេរៀន PHP មូលដ្ឋាន! នៅក្នុងមេរៀននេះ អ្នកនឹងរៀនអំពី៖
- របៀបសរសេរកូដ PHP មូលដ្ឋាន (PHP Syntax)
- អថេរ (Variables) និងរបៀបប្រើប្រាស់
- ថេរ (Constants) និងពេលណាគួរប្រើ
- ប្រភេទទិន្នន័យ (Data Types) ក្នុង PHP
💡 ចំណាំ៖ រាល់ output ដែលបង្ហាញខាងក្រោមគឺជា output ពិតប្រាកដ ដែលប្រតិបត្តិដោយ PHP 8.2.30
① PHP Syntax មូលដ្ឋាន
1.1 ស្លាក PHP (PHP Tags)
📖 គោលគំនិត (Concept):
កូដ PHP ទាំងអស់ត្រូវសរសេរនៅក្នុងស្លាក <?php ... ?>។ PHP ដំណើរការនៅលើ server ហើយបញ្ជូន HTML ទៅ browser។
<?php
echo "សួស្តី ពិភពលោក! (Hello World!)";
?>
🖥️ Output:
សួស្តី ពិភពលោក! (Hello World!)
1.2 បង្ហាញលទ្ធផល (echo) និង Comment
📖 គោលគំនិត:
echo ប្រើសម្រាប់បង្ហាញអត្ថបទនៅលើទំព័រ។ Comment ប្រើសម្រាប់កត់ចំណាំ — PHP មិនដំណើរការ comment ទេ។
//— comment មួយបន្ទាត់ (single-line)/* ... */— comment ច្រើនបន្ទាត់ (multi-line)- រាល់សេចក្តីថ្លែង (statement) ត្រូវបញ្ចប់ដោយ
;(semicolon)
<?php
// នេះជា comment មួយបន្ទាត់
echo "ខ្ញុំកំពុងរៀន PHP"; // semicolon នៅចុង
/* នេះជា comment
ច្រើនបន្ទាត់ */
echo " — វាសប្បាយណាស់!";
?>
🖥️ Output:
ខ្ញុំកំពុងរៀន PHP — វាសប្បាយណាស់!
1.3 ការផ្សំអត្ថបទ (Concatenation) និង PHP + HTML
📖 គោលគំនិត:
សញ្ញា . (dot) ប្រើសម្រាប់ផ្សំអត្ថបទ (string concatenation)។ អ្នកអាចលាយ PHP ជាមួយ HTML បាន។
<?php
$firstName = "សុខ";
$lastName = "ចាន់";
// ផ្សំអត្ថបទដោយប្រើ dot (.)
echo "ឈ្មោះពេញ: " . $firstName . " " . $lastName;
?>
<!-- PHP ក្នុង HTML -->
<p>ថ្ងៃនេះជាថ្ងៃ <?php echo date('l'); ?></p>
🖥️ Output:
ឈ្មោះពេញ: សុខ ចាន់
ថ្ងៃនេះជាថ្ងៃ Saturday
② អថេរ (Variables)
2.1 អថេរជាអ្វី? (What is a Variable?)
📖 គោលគំនិត:
អថេរ (variable) គឺជា "ប្រអប់" សម្រាប់ផ្ទុកទិន្នន័យ។ ក្នុង PHP អថេរចាប់ផ្តើមដោយ $។
- ចាប់ផ្តើមដោយ
$បន្ទាប់មកជាអក្សរ ឬ underscore_ - មិនអាចចាប់ផ្តើមដោយលេខ (e.g.,
$1name❌) - Case-sensitive:
$Name≠$name
<?php
$name = "វិចិត្រា"; // string
$age = 20; // integer
$gpa = 3.75; // float
echo "ឈ្មោះ: $name";
echo "<br>";
echo "អាយុ: $age ឆ្នាំ";
echo "<br>";
echo "មធ្យមភាគ: $gpa";
?>
🖥️ Output:
ឈ្មោះ: វិចិត្រា
អាយុ: 20 ឆ្នាំ
មធ្យមភាគ: 3.75
2.2 Interpolation ទល់នឹង Concatenation
📖 គោលគំនិត:
មានពីរវិធីក្នុងការបញ្ចូលអថេរក្នុង string៖
- Interpolation — ដាក់អថេរផ្ទាល់ក្នុង double quote
"..." - Concatenation — ផ្សំដោយប្រើ dot
. - Single quote
'...'មិន interpret អថេរទេ!
<?php
$subject = "PHP";
$year = 2;
// Interpolation (double quotes)
echo "ខ្ញុំរៀន $subject ឆ្នាំទី $year";
echo "<br>";
// Concatenation (dot)
echo 'ខ្ញុំរៀន ' . $subject . ' ឆ្នាំទី ' . $year;
echo "<br>";
// Single quote — មិន interpret ទេ
echo 'ខ្ញុំរៀន $subject ឆ្នាំទី $year';
?>
🖥️ Output:
ខ្ញុំរៀន PHP ឆ្នាំទី 2
ខ្ញុំរៀន PHP ឆ្នាំទី 2
ខ្ញុំរៀន $subject ឆ្នាំទី $year (single quote — មិន interpret)
③ ថេរ (Constants)
3.1 define() និង const
📖 គោលគំនិត:
ថេរ (constant) គឺជាតម្លៃដែល មិនអាចប្តូរ បានបន្ទាប់ពីកំណត់រួចហើយ។
define("NAME", value)— ប្រើបានគ្រប់កន្លែងconst NAME = value;— ប្រើនៅ top-level scope- ទម្លាប់តែងសរសេរជា UPPERCASE (អក្សរធំ)
- មិនប្រើ
$នៅពីមុខឈ្មោះទេ
<?php
// វិធីទី 1: define()
define("SCHOOL_NAME", "សាកលវិទ្យាល័យភ្នំពេញ");
define("MAX_STUDENTS", 50);
// វិធីទី 2: const
const TAX_RATE = 0.10;
echo "សាលា: " . SCHOOL_NAME;
echo "<br>";
echo "សិស្សអតិបរមា: " . MAX_STUDENTS . " នាក់";
echo "<br>";
echo "អត្រាពន្ធ: " . (TAX_RATE * 100) . "%";
?>
🖥️ Output:
សាលា: សាកលវិទ្យាល័យភ្នំពេញ
សិស្សអតិបរមា: 50 នាក់
អត្រាពន្ធ: 10%
💡 ពេលណាគួរប្រើថេរ?
- តម្លៃដែលមិនផ្លាស់ប្តូរ (e.g., ឈ្មោះសាលា, អត្រាពន្ធ, PI)
- ការកំណត់រចនាសម្ព័ន្ធ (configuration values)
- សម្រាប់
define()ទល់នឹងconst: ប្រើdefine()ពេលត្រូវការ dynamic ឬ ក្នុង conditionals; ប្រើconstនៅ class level
④ ប្រភេទទិន្នន័យ (Data Types)
4.1 ប្រភេទទិន្នន័យសំខាន់ៗ
📖 គោលគំនិត:
PHP មានប្រភេទទិន្នន័យជាច្រើន។ នេះជា 6 ប្រភេទសំខាន់សម្រាប់អ្នកចាប់ផ្តើម៖
| ប្រភេទ (Type) | ការពិពណ៌នា | ឧទាហរណ៍ |
|---|---|---|
| string | អត្ថបទ (text) | "សួស្តី" |
| integer | លេខគត់ (whole number) | 42 |
| float | លេខទសភាគ (decimal) | 3.14 |
| boolean | ពិត ឬ មិនពិត | true / false |
| array | បញ្ជីតម្លៃច្រើន | [1, 2, 3] |
| NULL | គ្មានតម្លៃ (no value) | null |
4.2 ពិនិត្យប្រភេទទិន្នន័យ — gettype() និង var_dump()
📖 គោលគំនិត:
gettype($var)— ត្រឡប់ប្រភេទជា string (e.g., "integer")var_dump($var)— បង្ហាញប្រភេទ + តម្លៃ + ទំហំ (detail)
<?php
$text = "Hello PHP";
$number = 100;
$decimal = 9.99;
$flag = true;
$fruits = ["ផ្លែមៀន", "ផ្លែចេក"];
$empty = null;
echo "gettype(\$text) = " . gettype($text);
echo "<br>";
echo "gettype(\$number) = " . gettype($number);
echo "<br>";
echo "gettype(\$decimal) = " . gettype($decimal);
echo "<br>";
echo "gettype(\$flag) = " . gettype($flag);
echo "<br>";
echo "gettype(\$fruits) = " . gettype($fruits);
echo "<br>";
echo "gettype(\$empty) = " . gettype($empty);
echo "<hr>";
echo "<strong>var_dump() results:</strong><br>";
var_dump($text);
echo "<br>";
var_dump($number);
echo "<br>";
var_dump($decimal);
echo "<br>";
var_dump($flag);
echo "<br>";
var_dump($fruits);
echo "<br>";
var_dump($empty);
?>
🖥️ Output:
gettype($text) = string
gettype($number) = integer
gettype($decimal) = double
gettype($flag) = boolean
gettype($fruits) = array
gettype($empty) = NULL
var_dump() results:
string(9) "Hello PHP"
int(100)
float(9.99)
bool(true)
array(2) {
[0]=>
string(21) "ផ្លែមៀន"
[1]=>
string(21) "ផ្លែចេក"
}
NULL
🧪 សាកល្បងដោយខ្លួនឯង (Interactive Demo)
🔍 ពិនិត្យប្រភេទទិន្នន័យ
វាយតម្លៃមួយ ហើយ PHP នឹងបង្ហាញប្រភេទ និង var_dump របស់វា៖
🎯 ជ្រើសរើសប្រភេទទិន្នន័យ
ជ្រើសរើសប្រភេទមួយ ហើយមើល output ពិត៖
📝 លំហាត់អនុវត្ត (Practice Questions)
ព្យាយាមឆ្លើយសំណួរខាងក្រោម។ ចុច "បង្ហាញចម្លើយ" ដើម្បីពិនិត្យ។
❓ សំណួរទី 1 (Multiple Choice):
តើស្លាកណាមួយដែលត្រឹមត្រូវសម្រាប់សរសេរកូដ PHP?
A. <php> ... </php>
B. <?php ... ?>
C. <script php> ... </script>
D. <% ... %>
🔑 បង្ហាញចម្លើយ
ចម្លើយ: B — <?php ... ?> គឺជាស្លាក PHP ស្តង់ដារ។
❓ សំណួរទី 2 (Short Answer):
តើអ្វីជាភាពខុសគ្នារវាង // និង /* */?
🔑 បង្ហាញចម្លើយ
ចម្លើយ: // ជា comment មួយបន្ទាត់ (single-line)។ /* */ ជា comment ច្រើនបន្ទាត់ (multi-line)។ ទាំងពីរមិនត្រូវបានប្រតិបត្តិដោយ PHP ទេ។
❓ សំណួរទី 3 (Multiple Choice):
តើឈ្មោះអថេរណាមួយខាងក្រោមដែល មិនត្រឹមត្រូវ?
A. $myName
B. $_age
C. $2ndPlace
D. $total_price
🔑 បង្ហាញចម្លើយ
ចម្លើយ: C — $2ndPlace មិនត្រឹមត្រូវទេ ព្រោះអថេរមិនអាចចាប់ផ្តើមដោយលេខបានទេ។
❓ សំណួរទី 4 (Short Answer):
តើកូដខាងក្រោមបង្ហាញអ្វី?
<?php $x = "PHP"; echo 'I love $x'; ?>
🔑 បង្ហាញចម្លើយ
ចម្លើយ: បង្ហាញ I love $x — នៅក្នុង single quote, PHP មិន interpret អថេរទេ។ អ្នកត្រូវប្រើ double quote ឬ concatenation។
❓ សំណួរទី 5 (Multiple Choice):
តើមធ្យោបាយណាខាងក្រោមដែលប្រើកំណត់ថេរ (constant)?
A. $PI = 3.14;
B. define("PI", 3.14);
C. constant PI = 3.14;
D. set("PI", 3.14);
🔑 បង្ហាញចម្លើយ
ចម្លើយ: B — define("PI", 3.14); គឺជាវិធីត្រឹមត្រូវក្នុងការកំណត់ថេរ។ ជម្រើស A ជាអថេរធម្មតា មិនមែនថេរ។
❓ សំណួរទី 6 (Short Answer):
តើ gettype(3.14) ត្រឡប់តម្លៃអ្វី?
🔑 បង្ហាញចម្លើយ
ចម្លើយ: "double" — PHP ហៅ float ថា "double" នៅក្នុង gettype()។ ការបញ្ជាក់៖ double
❓ សំណួរទី 7 (Multiple Choice):
តើ var_dump(true) បង្ហាញអ្វី?
A. string(4) "true"
B. bool(true)
C. int(1)
D. boolean: true
🔑 បង្ហាញចម្លើយ
ចម្លើយ: B — var_dump(true) បង្ហាញ bool(true)។ ការផ្ទៀង៖ bool(true)
❓ សំណួរទី 8 (Short Answer):
សរសេរកូដ PHP ដែលកំណត់ថេរឈ្មោះ APP_NAME មានតម្លៃ "My Website" រួចបង្ហាញវា។
🔑 បង្ហាញចម្លើយ
ចម្លើយ:
<?php
define("APP_NAME", "My Website");
echo APP_NAME;
?>
ឬដោយប្រើ const:
<?php const APP_NAME = "My Website"; echo APP_NAME; ?>
❓ សំណួរទី 9 (Multiple Choice):
តើសញ្ញាណាមួយប្រើសម្រាប់ concatenation ក្នុង PHP?
A. +
B. &
C. . (dot)
D. , (comma)
🔑 បង្ហាញចម្លើយ
ចម្លើយ: C — សញ្ញា . (dot) ប្រើសម្រាប់ផ្សំ (concatenate) strings ក្នុង PHP។
❓ សំណួរទី 10 (Short Answer):
តើអ្វីជាភាពខុសគ្នាសំខាន់រវាងអថេរ (variable) និងថេរ (constant)?
🔑 បង្ហាញចម្លើយ
ចម្លើយ: អថេរ (variable) អាចផ្លាស់ប្តូរតម្លៃបានគ្រប់ពេល (e.g., $x = 5; $x = 10;)។ ថេរ (constant) កំណត់តម្លៃម្តងហើយ មិនអាចប្តូរបានទៀតទេ។ អថេរប្រើ $, ថេរមិនប្រើ $។
🔐 ចម្លើយទាំងអស់ (Full Answer Key) — ចុចដើម្បីបើក
| សំណួរ | ប្រភេទ | ចម្លើយ |
|---|---|---|
| 1 | Multiple Choice | B — <?php ... ?> |
| 2 | Short Answer | // = single-line, /* */ = multi-line |
| 3 | Multiple Choice | C — $2ndPlace (មិនអាចចាប់ផ្តើមដោយលេខ) |
| 4 | Short Answer | I love $x (single quote មិន interpret variable) |
| 5 | Multiple Choice | B — define("PI", 3.14); |
| 6 | Short Answer | "double" |
| 7 | Multiple Choice | B — bool(true) |
| 8 | Short Answer | define("APP_NAME", "My Website"); echo APP_NAME; |
| 9 | Multiple Choice | C — . (dot) |
| 10 | Short Answer | Variable ផ្លាស់ប្តូរបាន, Constant ផ្លាស់ប្តូរមិនបាន។ Variable ប្រើ $, Constant មិនប្រើ $។ |