" If you born poor it is not your mistake but if you die poor it is your mistake. Bill gates "
" The only way to do great work is to love what you do.If you haven't found it yet,keep looking.Don't settle. Steve Job "

PHP lesson


មេរៀនទី១   ប្រវត្តិ

  PHP ត្រូវបានផ្ដល់ឈោះជាផ្លូវការ HyperText Preprocessor វាជាភាសាដែលតំណើរការនៅលើ Server ដែលជា ទូទៅ ត្រូវបាន សរសេរក្នុងបរិបទ HTML ប៉ុន្ដែមិនដូចជា HTML page ធមតានោះ ទេPHP script មិនត្រូវបានបញ្ជូន ទៅអោយ client ដោយ server ផ្ទាល់នោះទេ វាធ្វើការបញ្ជូនដោយ PHP engine ។ PHP code ដែលឋិតនៅក្នុង script អាចប្រើដើម្បីធ្វើ ការជាមួយ Databases, បង្កើត ជារូបភាព ,អាន និង បញ្ចូល ទិន្នន័យឬ កែរប្រែអត្ថបទដែលមាននៅខាងក្នុង files ឬ ធ្វើការ ទំនាក់ ទំនងទៅកាន់ Remote Server ព្រមជាមួយនឹងលទ្ធភាពជាច្រើនផ្សេងទៀត ។
Rasmus Lerdorf គឺជាមនុស្សដំបូងដែលអភិវឌ្ឍន៍នូវ PHP/FI ហើយត្រូវបានមនុស្ស រាប់លាន អ្នកប្រើប្រាស់វា ។ ជំនាន់តំបូងនៃ PHP/FI ឈោះថា Personal Homepage Tools/Form Interpreterដែល លក្ខណៈ ជាមួលដ្ឋានគឺស្រដៀងទៅនឹងភាសា Perl ព្រោះបានប្រមូលផ្ដុំនូវ Perl scripts មកអភិវឌ្ឍន៍ នៅក្នុងអំឡុងឆ្នាំ ១៩៩៥ ប៉ុន្ដែវានៅមានកង្វះខាតជាច្រើននៅក្នុង ភាសានេះ ដូចជា for loops ជាដើម ។
 PHP/FI 2  នៅក្នុងឆ្នាំ ១៩៩៧ Rasmus បន្ដការអភិវឌ្ឍន៍នូវ PHP/FI 2 រហូតមកដល់ខែ វិច្ឆិកា ឆ្នាំដដែល បន្ទាប់ពី Andi Gutmans ហើយនិង Zeev Suraski បានប្រទះឃើញនូវ PHP/FI ចំពេលដែលពួក គេកំពុង ស្វែងរកនូវភាសាដើម្បីអភិវឌ្ឍន៍នូវគំរោងបង្កើត E-commerce solution សំរាប់សកលវិទ្យាល័យ របស់ពួកគេ ។ ពួកគេបានអោយដឹងថា PHP/FI ពុំទាន់មានលទ្ធភាព គ្រប់គ្រាន់នៅឡើយហើយខ្វះខាតនូវ លក្ខណៈពិសេស ជាច្រើន ។ ចំនុចមួយដែលមានការចាប់ អារមណ៍ជាង គេ គឺ while loops ដែលពួកគេនឹងត្រូវប្រតិបត្ដិ ។
PHP 3.   Zeev and Andi សំរេចចិត្ដសរសេរ scripting language ឡើងវិញប៉ុន្ដែពុំវត្ដមាន Rasmusចូលរួម ដើម្បីអភិវឌ្ឍន៍នូវ PHP3 ឡើយហើយបានផ្ដល់នូវឈោះថីថាHypertext Preprocessor ដើម្បីបញ្ជាក់ថា PHPគឺជាផលិតផលផ្សេងមួយទៀតហើយនឹង មិនត្រឹមតែយក មកប្រើ សំរាប់តែការងារផ្ទាល់ ខ្លួននោះទេ ។ Zeev and Andi ក៏បានបង្កើតនូវ Extension API ដែល API បង្កើតថីនេះវាមានលទ្ធភាពបំពេញនូវការងារជាច្រើនដូចជា Accessing databases , spell checkers ហើយនឹង បច្ចេក
វិទ្យាដទៃៗទៀត ដែលធ្វើអោយមានការចាប់អារមណ៍ពីសំណាក់អ្នកអភិវឌ្ឍន៍ ជាច្រើនមកចូល រួមក្នុង គំរោង PHP។ នៅខណៈពេលនោះដែរ PHP ក៏ត្រូវបានបព្ចេញញនូវជំនាន់ថីរបស់ខ្លួនគឺ PHP 3 នៅ ថ្ងៃទី ៣ ខែ មិថុនា ឆ្នាំ ១៩៩៨ ដែលតាមការប៉ាន់សាន PHP នឹងត្រូវបានតំឡើង ប្រមាណ ជាង ៥០ ០០០ domains ប៉ុន្ដែជា មួយតួលេខពិតប្រាកដ លើកដំបូងរបស់ PHP ត្រូវបានគេតំឡើង ច្រើនជាងមួយ លាន Domain ទៅទៀត ។
PHP 4.
ប្រវត្តិ
នៅក្រោយឆ្នាំ ១៩៩៨ Zeev និង Andi ងាកទៅពិតនិត្យលើការងារ PHP 3 ហើយពួកគេមានគំនិត ថាពួក គេអាចសរសរនូវ script language ឡើងវិញអោយមានលក្ខណៈល្អប្រសើរជាងមុនទៅទៀត ក្នុងខណៈ ពេលដែល PHP 3 កំពុងបន្ដការធ្វើសម្ព័ន្ធ និង ប្រតិបត្ដិការនោះ PHP 4 ក៏ ចាប់ផ្ដើមបង្កើត នូវគំរូ ថី គឺ “compile first, execute later.” តំណាក់កាលនៃការ compile មិនត្រូវបាន complie PHP Script អោយទៅជា machine code នោះទេ វាជំនួសដោយការ compile ទៅជា byte code ដែលធ្វើ ការប្រតិបត្ដិការ ដោយZend Engine ( Zend មកពីពាក្យថា Zeev និង Andi ) ។ វិធីសាស្ដ្រថμីសំរាប់ការប្រតិបត្ដិ script នេះអាចធ្វើអោយ PHP 4 តំណើរការបាន ល្អប្រសើរ ច្រើនជា PHP 3 ហើយត្រូវបានដាក់បង្ហាញនូវ PHP 4 នេះក្នុង ខែ ឧសភា ឆ្នាំ ២០០២ ប៉ុន្ដែដោយមាន ការផ្លាស់ប្ដូរ នៅក្នុងភាសានេះជាបន្ដបន្ទាប់ទើប PHP 4 បានបង្កើតនូវជំនាន់របស់ខ្លួន ជា PHP 4.1.0 នឹង បានបង្ហាញនូវ Superglobals ដូចជា $_GET និង $_POST ។ ដែល Superglobals នេះអាចយកមកប្រើប្រាស់ពីខាងក្នុង Functions ដោយមិនចាំបាច់ប្រើ global keyword។ រហូតដល់ជំនាន់ចុងក្រោយរបស់ PHP4ត្រូវបាន បង្ហាញ ជាចុង ក្រោយបង្អស់ នៅថ្ងៃទី 27 ខែ ធ្នូ ឆ្នាំ ២០០២ ។
PHP 5 . ដោយមានតំរូវការជាច្រើននូវលក្ខណៈរបស់ object-oriented Andi ក៏មានគំនិត សរសេរនូវObject-Oriented សំរាប់ជាផ្នែកនៃ Zend Engine. Zeev and Andi បានសរសេរ នូវឯកសារអំពី “ Zend Engine II : Feature Overview and Design ” ហើយចាប់ផ្ដើម ពិភាក្សា គ្នាអំពី PHP‟s ទៅថ្ងៃអនាគតដែលក្នុងជំនាន់ PHP 5 មានចំនុចជាច្រើនដែលនឹងត្រូវកែប្រែ បន្ថែម ឬ រំលោះចោល ។
PHP‟s មិនត្រឹមតែប្រែប្រួលដោយអាចអោយប្រើប្រាស់នូវលក្ខណៈ Object-Oriented ប៉ុណ្ណោះ នោះទេ វាថែមទាំង ផ្ទុកនូវមុខ ងារថμីៗជាច្រើនដែលបញ្ចូលជាមួយមុខងារសំរាប់ XML ហើយជា ពិសេសនោះ គឺ SimpleXML extension ដែលធ្វើអោយ មានភាពងាយស្រួល ក្នុងការសម្រប សម្រួលជាមួយឯកសារ XML និង SOAP ឬ MySQLi ថី ហើយនឹង extensions ផ្សេងៗ ទៀតដែលជាចំនុចសំខាន់នៅក្នុង PHP‟s ។ គេរំពឹងថា PHP 5 នឹងអាចក្លាយជាអ្នកនាំមុខគេ នៅលើទីផ្សារនៃការអភីវឌ្ឍន៍ web


មេរៀនទី២: PHP- អថេរ
1.អថេរ (Variables) .
Variableគឺជាគ្រឹះដ៏សំខាន់សំរាប់ភាសាកុំព្យូទ័រវាត្រូវបានគេប្រើដើម្បីផ្ទុកនូវតំលៃជាបណ្ដោះអាសន្ននៅពេល
ដែលប្រតិបត្ដិការ script ម្ដងៗ ។ variable ត្រូវបានផ្ដល់តំលៃទៅអោយ នៅពេលដែល Script ចាប់ ផ្ដើម តំណើរការ ឬ នៅពេលអ្នកប្រើប្រាស់ បញ្ជូល ឬបានមកពីការចាប់យកទិន្នន័យពី Database អ្នកអាច ប្រើប្រាស់ variable គ្រប់ពេលទាំងអស់ នៅពេលដែល script ចាប់ផ្ដើមតំ ណើរការជា មួយ ទិន្នន័យ ហើយអ្នកអាចកែប្រែ តំលៃដែល Variable នោះផ្ទុកពីការប្រតិបត្ដិការ script មួយទៅកាន់ការ ប្រតិបត្ដិការ របស់ script មួយផ្សេងទៀត រហូតដល់ពេលដែល script របស់អ្នកត្រូវបានបញ្ចប់ ។
សំរាប់ភាសា PHP ឈោះរបស់ variable ត្រូវតែចាប់ផ្ដើមដោយនិមិត្ដសញ្ញា $ (dollar sign)អ្នក អាច ផ្ដល់ នូវ ឈោះរបស់ variable ជាតួអក្សរ តំលៃលេខ ឬ underscore ( _ ) ក៏ប៉ុន្ដែអ្នកមិនអាច ប្រើអក្សរដកឃ្លាជាមួយឈោះរបស់ variable នោះទេ។
ឧទាហរណ៍ ខាងក្រោមគឺជាការផ្ដល់ឈោះទៅអោយ variable ដែលត្រឹមត្រូវ ៖
$sok ;
$sok_som_neang ;
$_Dara ;
$Chenda22 ;
Variable របស់ PHP អាចផ្ទុកនូវប្រភេទទិន្នន័យដែលជាតំលៃលេខ តួអក្សរ object , array Booleans ហើយរាល់ចំនុះរបស់ variable អាចធ្វើការផ្លាស់ប្ដូរគ្រប់ពេលវេលា ។ ជាទូទៅ ការប្រកាសVariable ឬ ការផ្ដល់តំលៃទៅអោយ variable អ្នកអាចអនុវត្ដន៍នូវ statement ដូចខាងក្រោម ។
$num1 = 5;
$num2 = 8;
ការប្រកាស variable ពីរ ខាងលើអ្នកបានប្រើប្រាស់នូវ assignment operator (=) ដែលនឹងរៀបរាប់លំអិតនៅក្នុងមេរៀន “ Operator and Expression “ ។បន្ទាប់ពីអ្នកបាន ផ្ដល់នូវតំលៃទៅ variableរួចរាល់ហើយ អ្នកអាចយកវាមក ប្រើប្រាស់បាន ដូចខាងក្រោម ៖
print $num2; វាមានតំលៃសើនឹងការប្រើ print 8; ដូចច្នេះមានន័យថា $num2 ផ្ទុកតំម្លៃ ៨ ចូរចងចាំថារាល់ចុងបញ្ចប់នៃរបាយការណ៍របស់ PHP និមួយៗត្រូវតែបញ្ចប់ដោយសញ្ញា ( ; ) semicolon។
2 Data Types .
ប្រភេទខុសៗគ្នានៃទិន្នន័យត្រូវបានប្រើប្រាស់នូវចំនួនសរុបរបស់អង្គចងចាំផ្សេងៗគ្នា ហើយវាអាចប្រព្រឹត្ដទៅនៅពេលអ្នក
រៀបចំវានៅក្នុង script របស់អ្នក ។ មានភាសាកមវិធីមួយចំនួនទាមទារអោយអ្នកសរសេរកមμវិធី ប្រកាសនូវប្រភេទ នៃទិន្នន័យ
a
ឧទាហរណ៍ ១
Gettype.php
01: <html>
02: <head><titile>Display Data Type</title>
03: </head>
04: <body>
05:
06: <h2>Using gettype</h2>
07:
08: <?php
09: $testing;
10: Print gettype($testing);// NULL
11: $testing = 5;
12: print gettype($testing); // integer
14: print “<br />”;
15: $testing = “five”;
16: print gettype($testing); // string
17: print “<br />”;
18: $testing = 5.0;
19: print gettype($testing); // double
20: print “<br />”;
21: $testing = true;
22: print gettype($testing); // boolean
23: print “<br />”;
24: ?>

25:
26: </body>
27: </html>
នៅពេលដែល variable $testing ត្រូវបានប្រកាសនៅបន្ទាត់ទី ០៩ ដោយមិនបាន ផ្ដល់តំលៃ ទៅអោយវា ដូចច្នេះនៅពេលដែលប្រើប្រាស់ gettype() function ដើម្បីត្រួតពិនិត្យ variable នៅបន្ទាត់ទី១០ នោះអ្នកនឹង ទទួលបាននូវ លទ្ធផល ជាអក្សរ Null ។ បន្ទាប់ពីនេះ variable $testing ត្រូវបានផ្ទល់នូវតំលៃជាតួលេខនៅបន្ទាត់ទី ១១ គឺលេខ ៥ ដែលជាចំនួនគត់ ឬ អ្នកអាច និយាយបានថាតំលៃលេខដែលគានក្បៀសដូច្នេះលទ្ទផលដែលនឹងទទួលបានបន្ទាប់ពីការប្រើប្រាស់នូវ gettype() function បន្ទាត់ទី១២ គឺ // integerចំណែកការផ្ដល់នូវតំលៃ “five” ទៅអោយ variable $testing នៅបន្ទាត់ទី ១៥ គឺជាបន្ដុំនៃតួអក្សរ ។នៅពេលដែលអ្នកចង់ធ្វើការជាមួយតំលៃជា string អ្នកត្រូវតែដាក់តំលៃនោះស្ថិតនៅក្នុងចន្លោះ សញ្ញា ( “ ) Double quotation mark ឬ ( „ ) single quotation mark ។
តំលៃជាប្រភេទ double ត្រូវបានផ្ដល់ទៅអោយ variable $testing ដែលស្ថិតនៅបន្ទាត់ទី ១៨ជាតំលៃ លេខ 5.0 ដែលតំលៃនេះជាតំលៃលេខទសភាគ ឬ ជាតំលៃលេខដែលមានក្បៀស។ តំលៃជាប្រភេទ Boolean ត្រូវបានផ្ដល់ទៅអោយ variable $testing នៅបន្ទាត់ទី ២១ ហើយតំលៃនេះអាចមានតែពីរប៉ុណ្ណោះគឺ true ឬ false ។
សំគាល់ ៖
ភាពខុសគ្នារវាការប្រើប្រាស់នូវ (“ ) double quotation mark និង ( ‘ ) single quotation mark
Double quotation mark អនុញ្ញាតិអោយយើងប្រើប្រាស់នូវ variable បញ្ចូលជាមួយ ពីព្រោះ PHP engine នឹងជំនួសនូវតំលៃដែលជា variable ។ សូមពិនិត្យមើលឧទាហរណ៍ខាងក្រោម-
$name = “Rithya”; >
print “hello, $name”; // hello,Rithya >
ប្រសិនបើអ្នកប្រើប្រាស់នូវ single quotation mark variable មិនត្រូវបានជំនួសដោយតំលៃនោះទេ ។
print ‘hello, $name'; // hello, $name >

ឧទាហរណ៍ ២
Quotation.php
01: <html>
02: <head><title>Single Quotation and Double Quotation mark</title>
03: </head>
04: <body>
05: <h2> Using double quatation and Signle quatation mark</h2>
06:
07: <?
08: $name = “Rithya”;
09: print “Hello,$name<br/>”; // Hello,Rithya
10: print ‘Hello,$name'; // Hello,$name
11: ?>
12:
13: </body>
14: </html>

3.Displaying Type Information with var_dump().
gettype() គឺជា function ដែលប្រើដើមី្បទទួលនូវប្រភេទ variable ដោយឡែក var_dump()
ប្រើដើម្បីប្រាប់នូវប្រភេទ variable និង ចំនុះរបស់វា ។ ច្រើនជាងនេះទៅទៀត សំរាប់ប្រភេទតំលៃដែលសគសាញដូចជា arrays និង object var_dump() ផ្ដល់អោយនូវពត៌មានគ្រប់ប្រភេទដែលមាននៅក្នុងVariable នោះ ។
ឧទាហរណ៍ ៣
Var_dump.php
01: <html>
02: <head>
03: <title>Displaying Type Information with var_dump</title>
04: </head>
05: <body>
06: <h2>using Var_dump</h2>
07:
08: <?php
09: $testing=5;
10: print var_dump($testing);
11: ?>
12:
13: </body>
14: </html>
4.The Cast Operators
PHPផ្ដល់អោយនូវវិធីដើម្បធ្វើការផ្លាស់ប្ដូរនូវប្រភេទទិន្នន័យដោយប្រើប្រាស់castoperators ដូចមានរៀបរាប់ក្នុង
តារាងខាងក្រោមៈ
a
Casting.php
<html>
<head>
<title>Casting variable</title>
</head>
<body>
<h2>Using Casting to Changing Type</h2>
<?php
$unexpect=3.14;
$holder = (double)$unexpect;
print gettype($holder);
print “— $holder<br/>”;
$holder = (string)$unexpect;
print Gettype($holder);
print “– $holder<br/>”;
$holder = (integer)$unexpect;
print gettype($holder);
print “– $holder<br/>”;
$holder = (Double)$unexpect;
print gettype($holder);
print “—- $holder<br/>”;
$holder = (boolean)$unexpect;
print gettype($holder);
print “– $holder<br/>”;
?>
</body>
</html>

5.Operators and Expressions .
Operators គឺជានិមិតសញ្ញាទាំឡាយណាដែល អ្នកអាចប្រើ តំលៃមួយ ឬ ច្រើន បង្កើតចេញជាតំលៃថីមួយទៀត ហើយតំលៃដែលប្រតិបត្ដិដោយ operator នោះត្រូវបានគេហៅថា operand ។
Operand គឺជាតំលៃដែលចូលរួមជាមួយ operator ដែលជាទូទៅ មាន operand ពីរជាមួយOperator មួយ ។
ឧទាហរណ៍ការប្រើ operand ពីរ ជាមួយ operator ដើម្បីបង្កើតចេញជាតំលៃថីមួយផ្សេងទៀត។
4 + 5
៤ ហើយនិង ៥ គឺជា operand ដែលត្រូវបាន operated ដោយ addition operator (+) ដើម្បីបង្កើតនូវតំលៃថី គឺ ៩ ។ ការផ្ដុំនូវ operand និង operator ដើម្បីបង្កើតជាលទ្ធផល ត្រូវបានគេហៅថា expression
5.1 The Assignment Operator .
Assignment operators ប្រើដើម្បីផ្ដល់នូវតំលៃទៅអោយ variable ។ ដូចដែលអ្នក បានជួប ខាងលើ assignment operator ត្រូវបាន initialize variable គ្រប់ពេល វាគឺជាអក្សរ ( = ) ។Assignment operator ចាប់យកតំលៃពី operand ខាងស្ដាំទៅអោយ operand ខាងឆ្វេងដូចឧទាហរណ៍
ខាងក្រោម ៖
$name = “ DYCHANDOEUN “ ;
Print $name; .
ជាទូទៅខាងឆ្វេងនៃ Assignment operator ច្រើនតែជា variable ។
5.2 Arithmetic Operators
a
5.3 The Concatenation Operator ( . ) .
Concatenation operator ប្រើដើម្បីភ្ជាប់ string សំរាប់ operator មួយនេះវាធ្វើការជា មួយតែ string ប៉ុណ្ណោះ ។ ដូច្នេះរាល់ operand ដែលមិនមែនជា string វានឹង convert អោយទៅ ជា string សូមពិនិត្យមើលឧទាហរណ៍ ៖
“hello”.” world” ការសរសេរបែបនេះវាសើនឹងការសរសេរ “hello world” ។
$year = 2007; .
Print “Happy khmer new year_”.$year ; .
Variable $year ដែលជាប្រភេទ integer ត្រូវបានបំលែងទៅជា string ” 2007 ” មុន
ពេលដែលវាត្រូវបានភ្ជាប់ជាមួយ string “ Happy khmer new year ” ។
5.4 Combined Assignment Operators
$x = 4; .
$x = $x + 4; // លទ្ធផល $x គឺ 8
ឬ អ្នកអាចជំនួសដោយការសរសេរដូចខាងក្រោម
$x = 4;
$x += 4; // $ លទ្ធផល $x គឺ 8
a
5.5 Comparison Operators .
 Comparison operators ប្រើដើម្បីប្រៀធៀបនូវ operands ទាំងឡាយ ដោយផ្ដល់នូវតំលៃត្រលប់ជា Boolean ( true or false ) ។
ឧទាហរណ៍ដើម្បីត្រួតពិនិត្យតំលៃដែលមាននៅក្នុង $x និងជាតំលៃដែលតូចជាងប្រាំ អ្នកអាចប្រើជាមួយនឹង less than operator ។
$x < 5
ប្រសិនបើ $x ផ្ទុកតំលៃ លេខ 4 expression ខាងលើនឹងផ្ដល់ជាតំលៃ true ប៉ុន្ដែប្រសិនបើ $x ផ្ទុកតំលៃជាលេខ 7 នោះ expression នឹងផ្ដល់នូវតំលៃ false ។
a
Operator ខាងលើនេះភាគច្រើនប្រើជាមួយ integers or double ហើយសំរាប់ operator( == ) គឺប្រើដើម្បីប្រៀបធៀបតំលៃដែលជា strings ។
5.6 Logical Operators
a
Logical operators បំលែង operand អោយទៅជាតំលៃ Boolean រួចធ្វើការប្រៀបធៀបតំលៃទាំងនោះ ។
Or operator ឬ ( || ) ផ្ដល់តំលៃ true ប្រសិនបើ operand ខាងឆ្វេង ឬ ខាងស្ដាំណាមួយមានតំលៃ true ។
ឧទាហរណ៍ ១. true || false លទ្ធផលគឺ true ។And operator ឬ ( && ) ផ្ដល់តំលៃ true នៅពេលដែល operand ទាំងពីរមានតំលៃ true ។
ឧទាហរណ៍ ២. true && false លទ្ធផលគឺ false ។
ឧទាហរណ៍ ៣. ( $x > 2 ) && ( $x < 15 )
5.7 Increment/Decrement Operators  Increment/decrement operators 
ប្រើដើម្បីបង្កើន ឬ បន្ថយតំលៃ របស់ variable ដែលជា Integer ហើយជាទូទៅប្រើដើម្បីរាប់ Iteration របស់ loop ។
$x = $x + 1; // $x is incremented.
$x += 1; // $x is incremented.
$x++; // $x is incremented
. $x = $x – 1; // $x is decremented.
$x–; // $x is decremented.
$x- = 1; // $x is decremented.
a
ឧទាហរណ៍
$num1 = 5;
$num2 = $num1++; // post-increment, $num2 ត្រូវបានផ្ដល់នូវតំលៃដើមរបស់ $num1
print $num1; // លទ្ធផលដែលនឹងត្រូវបង្ហាញគឺ តំលៃរបស់ $num1 គឺ ៦
print $num2; // លទ្ធផលដែលនឹងត្រូវបង្ហាញគឺ ជាតំលៃដើមរបស់ $num1 គឺ ៥
ឧទាហរណ៍ ៖
$num1 = 5;
$num2 = ++$num1; // pre-increment, $num2 ត្រូវបានផ្ដល់នូវតំលៃថីរបស់ $num1
ទៅអោយ $num2 ។
print $num1; // លទ្ធផលដែលនឹងត្រូវបង្ហាញគឺ តំលៃរបស់ $num1 គឺ ៦
print $num2; // លទ្ធផលដែលនឹងត្រូវបង្ហាញគឺ ជាតំលៃរបស់ $num1 គឺ ៦
6.Constants . ជាទូទៅ Variables ត្រូវបានគេប្រើដើម្បីផ្ទុកនូវតំលៃ ពីព្រោះតំលៃ និង ប្រភេទរបស់វាអាច នឹងត្រូវផ្លាស់ប្ដូរបានគ្រប់ពេលវេលា ។ ប្រសិនបើអ្នកចង់ធ្វើការជា មួយតំលៃដែល មិនប្រែរប្រួលនៅក្នុងការ ប្រតិបត្ដិការកូដរបស់អ្នក អ្នកអាចប្រើប្រាស់នូវ constant ។ PHP បានផ្ដល់នូវ define() function ដើម្បី
បង្កើតនូវ constant ។
define(“CONSTANT_NAME”, 42);
តំលៃដែលអ្នកអាចផ្ដល់ទៅអោយ constant គឺត្រូវតែជា តំលៃលេខ ឬ តួអក្សរ ហើយសំរាប់ការ
ផ្ដល់ឈេμាះរបស់ constant អ្នកគួរតែប្រើអក្សរធំ ។ រាលការ់ប្រើប្រាស់ constant variable អ្នកគ្រាន់យក ឈោះរបស់ constant នោះមកប្រើ ប៉ុន្ដែមិនមានសញ្ញា ($) dollar symbol នៅពីមុខនោះទេ ។
ឧទាហរណ៍ ៦
constant.php
01: <html>
02: <head>
03: <title>Defining a constant</title>
04: </head>
05: <body>
06: <div>
07:
08: <?php
09: define(“USER”, “Ankor”);
10: print “Welcome “.USER;
11: ?>
12:
13: </div>
14: </body>
15: </html>
នៅបន្ទាត់ទី ១០ យើងបានប្រើ concatenation operator ដើម្បីភ្ជាប់តំលៃរបស់ constant និង
អក្សរ “Welcome” ពីព្រោះ PHP engine មិនមានវិធីសាស្ដ្រដើម្បីបែងចែក រវាង constant និង string
ដែលនៅក្នុង quotation mark នោះទេ ។
ជា Default constant គឺ case sensitive ប៉ុន្ដែអ្នកអាចផ្លាស់ប្ដូរដោយទទួលយកនូវ argument
ទី៣ ជា boolean មកប្រើក្នុង define() function ដើម្បីកំណត់អោយការប្រើប្រាស់ឈោះ constant ជា
Case insensitive ដូចមានក្នុងឧទហរណ៍ខាងក្រោម ។
define(“USER”, “Ankor”, true); .
ដូច្នេះអ្នកអាចប្រើប្រាស់ constant ដោយមិនមានការខ្វាយខ្វល់អំពីអក្សរតូចឬធំឡើយ ។
print User;
print usEr;
print USER;
ឧទាហរណ៍ ៧
constant2.php
<html>
<head>
<title>Defining a constant</title>
</head>
<body>
<div>
<?php
define (“USER”, “Angkor”,true);
print “Welcome”.uSER.”<br/>”;
print “Welcome”.uSeR.”<br/>”;
print “Welcome”.usEr.”<br/>”;
print “Welcome”.uSER.”<br/>”;
?>
</div>
</body>
</html>
 មេរៀនទី៣: ដំណើរការជាមួយ Flow

1. The if Statement
If statement គឺជាវិធីសាស្ដ្រដែលប្រើដើម្បីត្រួពិនិត្យទៅលើ ការប្រតិបត្ដិការរបស់ statement ដែលនៅបន្ទាប់វា
( អាចជា single statement ឬ ជា block of code ដែលឋិតនូវក្នុងសញ្ញា {——-)
If statement ធ្វើការវាយតម្លៃ expression ដែលនៅក្នុងសញ្ញា (ប្រសិនបើ expression របស់ ifផ្ដល់តំលៃ true នោះ statement ដែលនៅខាក្រោមនឹងត្រូវអនុវត្ដន៍ ។
កូដខាងក្រោមបង្ហាញពី ទំរង់នៃ if statement ដែលត្រួតពិនិត្យ expression ជា string ។
if(expression)
{
// code ដែលនឹងត្រូវអនុវត្ដន៍នៅពេលដែល expression ផ្ដល់តំលៃ true
}
ឧទាហរណ៍ ៨
<Html>
<head>
<title> Using if Statement </title>
</head>
<body>
<h2>Using if statement</h2>
<?php
$user=”Thanith”;
$pwd=”123″;
If(($user= =”Thanith” && pwd= =”123″))
print “Login successful”;
else
print “Login fail !”;
?>
</body>
</Html>
ការប្រើប្រាស់ comparasion operator (==) ដើម្បីប្រៀបធៀប variable $user និង តំលៃជាអក្សរ ” Thanith ”
variable $pwd ជាមួយនឹងតំលៃ “123” ប្រសិនបើតំលៃដែលត្រូវប្រៀបធៀបនិងតំលៃរបស់ variable
ដូចគ្នានោះ expression នឹងផ្ដល់តំលៃ true ហើយ code block នឹងត្រូវអនុវត្ដន៍ប៉ុន្ដែប្រសិន បើតំលៃរបស់ $user
ប្ដូរទៅជា “Romchong” ឬ តំលៃរបស់ $pwd ប្ដូរទៅជា “124” ហើយតំណើរការ scriptឡើងវិញ នោះ expression ដែលនៅក្នុង if statement និឹងផ្ដល់តំលៃ falseហើយCode block នឹងមិនត្រូវអនុវត្ដន៍ ដែល script នឹងបែរទៅអនុវត្ដន៍នូវ else statement ជំនួសវិញ ។
else
print “Login fail !”;
1.1 Using the else if Clause with the if Statement
អ្នកអាចប្រើប្រាស់នូវទំរង់ if/else ឬ else/if ដើម្បីធ្វើការពិនិត្យលើ expression មុនពេលដែល
Script របស់អ្នកត្រូវអនុវត្ដន៍ នូវ default block of code ។
if ( expression )
{
// code ដែលត្រូវអនុវត្ដន៍ ប្រសិនបើ expression ផ្ដល់តម្លៃ true
}
else if ( another expression )
{
// code ដែលត្រូវអនុវត្ដន៍ ប្រសិនបើ expression ដំបូងផ្ដល់តម្លៃ false
// ហើយ expression របស់វា true
}
else
{
// code ដែលត្រូវអនុវត្ដន៍ ប្រសិនបើពុំមាន expression ណាមួយ true
}
ប្រសិនបើ expression ដំបូងមិនផ្ដល់នូវតំលៃ true នោះ block of code ដំបូងក៏មិនត្រូវបាន អនុវត្ដន៍ដែរ else if ចាប់ផ្ដើមធ្វើការជាមួយ expression របស់ខ្លួន ប្រសិនបើ expression នេះផ្ដល់តំម្លៃ True នោះ block កូដទី២ នឹងត្រូវអនុវត្ដន៍ ផ្ទុយមកវិញកូដដែលស្ថិតនៅក្នុង else clauseនឹងត្រូវអនុវត្ដន៍ ជំនួសវិញ ។ អ្នកអាចប្រើប្រាស់ else if បានជាច្រើនទៅ តាមការចង
់បានរបស់អ្នក ហើយប្រសិនបើ អ្នកមិន ចង់អោយមាន Default action ទេ អ្នកមិនចាំបាច់ប្រើប្រាស់ else clause នោះទេ ។
2. The switch Statement .
switch statement គឺជាវិធីសាស្ដ្រដែលប្រើដើម្បីផ្លាស់ប្ដូរលំដាប់នៃការអនុវត្ដន៍កូដរបស់កមវិធី ដែលអាស្រ័យទៅលើ ការវាយតំលៃរបស់ expression ។ ការប្រើប្រាស់ if statement ជាមួយ else if អ្នកអាចប្រើប្រាស់ expressionបានច្រើន ដោយ ឡែក switch ប្រើប្រាស់តែ expression មួយ ប៉ុណ្ណោះ ។ការអនុវត្ដន៍ code ខុសៗគ្នាគឺអាស្រ័យទៅលើលទ្ធផលនៃexpression ដែលផ្ដល់តំលៃជា simple typeដូចជា ( number , string , Boolean……។ ល។ ) ។
switch (expression)
{
case exp:
// execute this if expression results in result1
break;
case exp:
// execute this if expression results in result2
break;
default:
// កូដនឹងត្រូវអនុវត្ដន៍ប្រសិនបើមិនមាន expression ណាដូចនឹង expression របស់ case
}
Expression របស់ switch statement ជាទូទៅត្រូវបានប្រើជា variable ហើយ codeរបស់ switch statement ត្រូវសរសេរនៅក្នុង case statement ។ រាល់តំលៃ expression របស់ caseនិមួយៗ ត្រូវបានយកមកផ្ទៀងផ្ទាត់ជាមួយ expression របស់ switch statement ប្រសិនណាតំលៃរបស់case ណាមួយដូចនឹង expression របស់ switch statement នោះ code block នឹងត្រូវអនុវត្ដន៍ បន្ទាប់ មក break statement នឹងបញ្ចប់ការអនុវត្ដន៍ switch statement ប៉ុន្ដែប្រសិនបើពុំមាន case expression ណាមួយ ដូចនឹង switch expression នោះ default statement គឺជាអ្នកអនុវត្ដន៍ ។
ឧទាហរណ៍ ៩
<Html>
<head>
<title>
Using switch Statement
</title>
</head>
<body>
<h2>Using switch statement</h2>
<?php
$name=”Daro”;
switch($name)
{
case “Dara”:
print ” Hello Dara”;
break;
case “Many”:
print “Hello Many”;
break;
case “Daro”:
print “Hello Daro”;
break;
Default:
print “No one know”;
}
?>
</body>
</Html>
3. Loops .
Loop statement អាចអោយអ្នកអនុវត្ដន៍នូវការងារម្ដងហើយម្ដងទៀតនៅក្នុង programរបស់អ្នក រហូតដល់វាសំរេច
លក្ខ័ណ្ឌ ឬ អ្ន្នកបញ្ជាអោយចាកចេញពី loop ។
3.1 The while Statement 
.While loops គឺជាប្រភេទមួយនៃ loops ។ expression របស់វាផ្ដល់ជាតំលៃ true ឬ false ដូច្នេះប្រសិនបើ expression ផ្ដល់តំលៃជាលទ្ធផល true នោះ code block នឹងត្រូវអនុវត្ដន៍ ដែល blockCode ស្ថិតនៅក្នុង loop នោះ ត្រូវបានគេអោយឈោះថា iteration ។
while ( expression )
{
// do something
}
ឧទាហរណ៍ ១០
while.php
<html>
<head><title>The While Statement</title>
</head>
<body>
<h2>Using the While Statement</h2>
<?php
$sum=0;$i=1;
$str=””;
While ($i<=10)
{
$sum+=$i;
$str= $str.“$i+”;
$i++;
}
echo substr($str,0,-1).“=$sum”;
?>
</body>
</html>
3.2 The do…while Statement .
do..while statement វាមានលក្ខណៈប្រហាក់ប្រហែលនឹង while statement ប៉ុន្ដែលក្ខណៈ ពីរដែលខុសគ្នាពី while statement គឺ block code របស់ do while statement អនុវត្ដន៍ មុនពេលដែល Expression របស់វាត្រូវបាន test និង ផ្ដល់តំលៃ true ឬ false ។
do
{
………………………
// code to be executed
………………………
}
while (expression);
Test expression នៃ do…while statement ត្រូវតែបញ្ចប់ដោយ ( ; ) semicolon. .
ឧទាហរណ៍ ១១
dowhile.php
<html>
<head><title>The Do While Loop Statement</title>
</head>
<body>
<h2>Using the do while Statement</h2>
</body>
</html>
<?php
$sum=0;$i=1;$str=””;
Do
{
$sum=$sum+$i;
$str= $str.”$i+”;
$i=$i+1;
}
While ($i<=10);
{
$i=$i-1;
echo substr($str,0,-1).”=$sum”;
}
?>
3.3 The for Statement .
for ( initialization expression; test expression; modification expression )
{
// code to be executed
}
រាល់ expression និមួយៗដែលមាននៅក្នុងសញ្ញាវង់ក្រចករបស់ for statement គឺត្រូវ បែងចែកគ្នាដោយ semicolon ( ; ) ។ expression ទីមួយ ចាប់ផ្ដើមរាប់ variable ហើយ expression ទី២ធ្វើការត្រួតពិនិត្យលក្ខ័ណរបស់ for loop និង expression
ទី៣ បង្កើន ឬ បន្ថយនូវចំនួនការរាប់ ។
ឧទាហរណ៍ ១២
forloop.php
<html>
<head>
<title>The for Statement</title>
</head>
<body>
<h2>Using for Statement</h2>
<?php
$sum=0;$str=””;
for ($i=1; $i<=10; $i++ )
{
$sum+=$i;
$str= $str.”$i+”;
}
echo substr($str,0,-1).”=$sum”;
?>
</body>
</html>
នៅពេលដែល program តំណើរការដល់ for loop variable $i ត្រូវបាន initialize ហើយTest expression ចាប់ផ្ដើមត្រួតពិនិត្យទៅលើ expression របស់ខ្លួន ប្រសិនបើ expression ផ្ដល់តំលៃ True នោះ code block នឹងត្រូវអនុវត្ដន៍  បន្ទាប់មក $i variable ធ្វើការបង្កើនតំលៃមួយ ហើយ testExpression ចាប់ផ្ដើមធ្វើការត្រួតពិនិត្យទៅលើ expression
របស់ខ្លួនសារជាថμីម្ដងទៀត។ ប្រតិបត្ដិការនេះបន្ដការអនុវត្ដន៍រហូតដល់ test expression ផ្ដល់តំលៃ false ។
3.4 Breaking Out of Loops with the break Statement .
រាល់ loop statement គឺសុទ្ធតែមានភ្ជាប់មកជាមួយនូវ test expression ដែលអាចអោយអ្នក បញ្ឈប់វាបាន ឬ ដោយប្រើប្រាស់ break statement ។
ឧទាហរណ៍ ១៣
break.php
01: <html>
02: <head>
03: <title>the break Statement</title>
04: </head>
05: <body>
06: <div>
07:
08: <?php
09:
10: $counter = -5;
11: for ( ; $counter <= 10; $counter++ ) {
12: if ( $counter == 0 ) {
13: break;
14: }
15: $temp = 2000/$counter;
16: print “2000 divided by $counter is.. $temp<br />”;
17: }
18: ?>
19:
20: </div>
21: </body>
22: </html>
យើងបានប្រើប្រាស់នូវ if statement នៅបន្ទាត់ទី ១៣ ដើម្បីត្រួពិនិត្យនូវតំលៃរបស់ variable$counter ប្រសិនបើតំលៃរបស់វាសើនឹងសូន្យ ០ break statement នឹងត្រូវអនុវត្ដន៍៍ ដែលត្រូវចាកចេញពីBlock code របស់ for loop statement ហើយអនុវត្ដន៍នូវ statement ដែលនៅបន្ទាប់ពី for statement ។
3.5 Skipping an Iteration with the continue Statement .
Continue statement បញ្ឈប់តំណើរការរបស់ iteration ដែលកំពុងអនុវត្ដន៍ ប៉ុន្ដែមិនបញ្ឈប់ តំណើរការរបស់ loop ទាំងស្រុងនោះទេ វានឹងបន្ដធ្វើការជាមួយ iteration ក្រោយៗបន្ដទៀត រហូតដល់ Expression ផ្ដល់តំលៃ false ឬ ជួប នឹង break statement ។
ឧទាហរណ៍ ១៤ continue.php
01: <!
02: exam continue statement
03: >
04: <html>
05: <head>
06: <title>Using the continue Statement</title>
07: </head>
08: <body>
09: <div>
10:
11: <?php
12:
13: $counter = -5;
14: for( ; $counter <= 10; $counter++ )
15: {
16: if ( $counter == 0 )
17: {
18: continue;
19: }
20: $temp = 2000/$counter;
21: print “2000 divided by $counter is .. $temp<br />”;
22: }
23:
24: ?>
25:
26: </div>
27: </body>
28: </html>
នៅបន្ទាត់ទី១៤យើងបានជំនួស break statement ដោយការប្រើប្រាស់ continue statementប្រសិនបើ variable $counter សេμី ០ iteration នឹងត្រូវរំលងការអនុវត្ដន៍ ហើយបន្ដអនុវត្ដន៍ iteration ជាបន្ដទៀត ។
3.6 Nesting Loops .
ឧទាហរណ៍ ១៥ៈ
nestingLoop.php
01: <html>
02: <head><title>using nested loop</title>
03: </head>
04: <body>
05: <h2>Using nested loop</h2>
06:
07: <?php
08:
09: $j=0;$i=0;
10: for($i=0;$i<=5;$i++)
11: {
12: print “The Value i=”.$i.”<br/>”;
13: for($j=0;$j<=3;$j++)
14: {
15: print “value J=”.$j.”<br/>”;
16: }
17: }
18:
19: ?>
20:
21: </body>
22: </html>
ការប្រើប្រាស់ for statement ដើម្បី បង្ហាញ table ទៅកាន់ brower ។
Nesting Two for Loops
01: <!
02: Nesting loops
03: >
04: <html>
05: <head>
06: <title>Nesting Two for Loops</title>
07: </head>
08: <body>
09: <div>
10:
10: <?php
11:
12: print “<table border=\”1\”>\n”;
13: for ( $y=1; $y<=12; $y++ )
14: {
15: print “<tr>\n”;
16: for ( $x=1; $x<=12; $x++ )
17: {
18: print “\t<td>”;
19: print ($x*$y);
20: print “</td>\n”;
21: }
22: print “</tr>\n”;
23: }
24: print “</table>”;
25:
26: ?>
27:
28: </div>
29:
30: </body>
31: </html>
មេរៀនទី៤: អនុគមន៍ Function
1.What is Functions ? Function គឺជាបន្ដុំនៃ block code ដែលអ្នកបង្កើត ហើយអនុញ្ញាតិ អោយអ្នកហៅ យកមកប្រើ នៅក្នុង script របស់អ្នក ។ នៅពេលដែលអ្នកហៅ function កូដ ដែលនៅ ខាង ក្នុងនឹងត្រូវអនុវត្ដន៍ ហើយអ្នកក៏អាច បញ្ជូនតំលៃទៅអោយ function ឬ ទទួលតំលៃពី function មកវិញ ។
1.1 Calling Functions .Function មានពីរប្រភេទគឺ Function ដែលមានស្រាប់ ភ្ជាប់មក ជាមួយនឹងភាសាកមវិធី និងFunction ដែលអ្នកបង្កើតឡើងដោយខ្លួនឯង ។ នៅក្នុងភាសា PHP មាន built-in function ជាច្រើនដែលផ្ដល់នូវភាពងាយស្រួលសំរាប់ការសរសេរកូដរបស់អ្នក ។
1.2 Defining a Function .អ្នកអាចបង្កើត function ដោយប្រើ function statement function function_name( $argument1, $argument2 )
{
//
}
ប្រសិនបើ function របស់អ្នកតំរូវអោយមាន argument ចាប់ពីពីរឡើងទៅ អ្នកត្រូវតែចែកវា ដោយប្រើប្រាស់សញ្ញា comma( , ) ដែលជាទូទៅ argument ទាំងនោះគឺជា variable ហើយតំលៃ របស់វានឹងត្រូវផ្ដល់អោយនៅពេលដែល function
ត្រូវបានហៅ ។
ឧទាហរណ៍ ១៦
Declaring a Function
<html>
<head>
<title>Declaring a Function</title>
</head>
<body>
<?php
function bigsum()
{
$sum=0;
for ($i=1; $i<=10; $i++ )
{
$sum+=$i; .
$str= $str.”$i+”;
}
echo substr($str,0,-1).”=$sum”;
}
bigsum();
?>
</body>

</html>
លទ្ធផលដែលបង្ហាញនៅលើ browser គឺជា string នៃតួរអក្សរ 1+2+3+…………+10 = 55ឧទាហរណ៍ខាងលើនេះគឺ ជាការបង្កើតនូវ function មួយឈេμាះថា bigsum()ដែលជា function មិនមាននូវ Arguments នោះទេ ។សំរាប់ឧទាហរណ៍ទី ២០ យើងនឹងបង្កើត function ដែលប្រើ ប្រាស់ argument ។
ឧទាហរណ៍ ២០
01: <html>
02: <head>
03: <title>Declaring a Function</title>
04: </head>
05: <body>
06
07: <?php
08:
09: function bigsum($count)
10: {
11: $sum=0;
12: for($i=1; $i<=$count; $i++ )
13: {
14: $sum+=$i;
15: $str= $str.”$i+”;
16: }
17: echo substr($str,0,-1).”=$sum”;
18: }
19:
20: bigsum(10);
21:
22: ?>
23:
24: </body>
25: </html>
1.2.1 Returning Values from User-Defined Functions នៅឧទាហរណ៍ខាងលើយើងទទួលបាននូវលទ្ធផលជា string នៅលើ browser ដោយការប្រើប្រាស់ bigsum() function ។ function របស់អ្ន្នកអាចធ្វើការផ្លាស់ប្ដូរតំលៃដែលអ្នកបានផ្ដល់អោយឬ មាន ពេលខ្លះអ្នកនឹងចង់អោយ function ផ្ដល់នូវតំលៃថីអោយអ្នក បន្ទាប់ពីអ្នកបានផ្ដល់តំលៃទៅឱៀវា។
Function មួយអាចទទួលបានតំលៃដោយការប្រើប្រាស់ នូវ returnstatement ជាមួយនឹងតំលៃដែលត្រូវបញ្ចូនត្រលប់
ទៅកាន់ function។ return បញ្ឈប់ប្រតិបត្ដិការរបស់ function ហើយ បញ្ជូនតំលៃត្រលប់ ទៅវិញនៅពេលដែល function
ត្រូវបានហៅមកប្រើ ។ខាងក្រោមគឺជាឧទាហរណ៍នៃការបង្កើត function ដែល return តំលៃពី ផលបូលចំនួនពីរតំលៃ ។
ឧទាហរណ៍ ២១
01: <html>
02: <head>
03: <title>A Function That Returns a Value</title>
04: </head>
05: <body>
06:
07: <?php
08
09: function addNums($num1,$num2)
10: {
11: $result = $num1 + $num2;
12: return $result;
13: }
14: print addNums(3,5);
15:
16: ?>
17: </body>
18: </html>
addNums() Function ត្រូវបានហៅយកមកប្រើប្រាស់ជាមួយនឹង argument ចំនួនពីរដែលជាតំលៃលេខ 3 និង លេខ 5
ដែលតំលៃទាំងនេះត្រូវបានរក្សាទុកនៅក្នុង variable $num1 និង $num2addNums function ធ្វើការគណនានូវផលបូកនៃត
ំលៃដែលរក្សាទុកនៅក្នុង variable ទាំងពីរហើយផ្ដល់ជាលទ្ធផលទៅអោយ variable $result ។អ្នកក៏អាច return តំលៃដោយការហៅ function ដទៃទៀតបានផងដែរ return ( another_function( $an_argument ) );
2. Variable Scope Variable ដែលប្រកាសនៅខាងក្នុង function គឺអាចប្រើប្រាស់បាន តែនៅ ខាងក្នុង function នោះប៉ុណ្ណោះ មានន័យថាមិនអាចប្រើប្រាស់ បាននៅខាងក្រៅ function ឬ នៅក្នុង function ដទៃទៀត ។
សំរាប់ project ធំៗវាអាចជួយអ្នកពីគ្រោះថា្នក់នៃការកែប្រែតំលៃដែលមាននៅក្នុង variableពេលដែលអ្នកប្រកាស
variable ពីរ ហើយមានឈោះដូចគ្នា និង ឋិតនៅក្នុង function ផ្សេងៗគ្នា ។
ខាងក្រោមគឺជាឧទហរណ៍ ស្ដីពីការបង្កើត variable មួយនៅក្នុង function ហើយព្យាយាមយកVariable នោះមកបង្ហាញលើ browser ពី ក្រៅ function ។
ចំណាំ ៖ Variableដែលបង្កើតនៅខាងក្នុង function មិនអាចប្រើប្រាស់ពីខាងក្រៅ function បាននោះទេ។
ឧទាហរណ៍ ២២ៈ
01: <html>
02: <head>
03: <title>Local Variable Unavailable Outside a Function</title>
04: </head>
05: <body>
06: <div>
07:
08: <?php
10:
11: function test()
12: {
13: $testvariable = “this is a test variable”;
14: }
15: print “test variable: $testvariable<br/>”;
16:
17: ?>
18: </div>
19 </body>
20: </html>
អ្នកនឹងបានឃើញនូវលទ្ធផលនៃឧទាហរណ៍ខាងលើ ដែលតំលៃរបស់ variable $testvariable មិនត្រូវបានបង្ហាញនោះទេ ពីព្រោះពុំមាន variable ណាមួយត្រូវបានបានបង្កើតនៅខាងក្រៅ functiontest() នោះទេ ។ គួរចំណាំថា ការយក variable
ដែលមិនមាន មកប្រើប្រាស់គឺមិនមានភាព error ឡើយ។ម្យ៉ាងវិញទៀត variable ដែលប្រកាសនៅខាងក្រៅ function
គឺមិនអាចយកមកប្រើក្នុង function ដោយស្វ័យប្រវត្ដិនោះទេ ។
2.1 Accessing Variables with the global Statement .
មានពេលខ្លះអ្នកប្រហែលជាត្រូវការប្រើប្រាស់ variable នៅក្នុង function របស់អ្នកដោយពុំតំរូវ អោយមានការបញ្ជូនតំលៃតាម argument នោះទេ ។ ខាងក្រោមគឺជាឧទាហរណ៍ដែលប្រើប្រាស់នូវ
global statement ដើម្បីប្រើប្រាស់នូវ variable ដែលប្រកាសខាងក្រៅ function ។
ឧទាហរណ៍ ២៣ៈ
01: <html>
02: <head>
03: <title>The global Statement</title>
04: </head>
05: <body>
06:
07: <?php
08:
09: $lottery=42;
10
11: function lotteryToday()
12: {
13: global $lottery;
14: print “Lottery today is $lottery<br />”;
15: }
16:
17: lotteryToday();
18: ?>
19: </body>
20: </html>
នៅបន្ទាត់ទី ១៣ នៃឧទាហរណ៍ទី២៣ យើងបានប្រើប្រាស់នូវ global ពីមុខ variable $lottery ដែលបានប្រកាសនៅក្នុង function lotteryToday() ដើម្បីសំដៅទៅកាន់ global variable $lottery ដែលបានប្រកាសនៅខាងក្រៅ function នៅបន្ទាត់ទី ០៩ ។
អ្នកត្រូវតែប្រើប្រាស់នូវ global statement នៅរាល់ function ដែលអ្នកចង់ប្រើប្រាស់នូវ global variable។ អ្នកគួរប្រុងប្រយ័ត្នផងដែរនៅពេលដែលអ្នកផ្ដល់តំលៃទៅអោយ variable $lottoery នៅក្នុង function ពីព្រោះ $lottery នឹងធ្វើការផ្លាស់ប្ដូរតំលៃរបស់ខ្លួនទាំងអស់នៅក្នុង script របស់អ្នក ។អ្នកក៏អាចប្រកាស variable ជាមួយ global statement បានច្រើនក្នុងពេលតែមួយ បានផងដែរ ដោយការចែកនូវ variable និមួយៗដោយសញ្ញា (,) comma។
ឧទាហរណ៍ ៖ global $var1, $var2, $var3;
មេរៀនទី៥:  PHP- Array
1. What Is an Array?
អ្នកក៏បានស្គាល់រួចមកហើយអំពី variable ដែលត្រូវគេប្រើដើម្បីផ្ទុកនូវតំលៃផ្សេងៗ ។ ដោយការប្រើប្រាស់ variable អ្នកក៏អាចបង្កើតជា script អោយប្រតិបត្ដិការ ឬ បង្ហាញជា ពត៌មានផ្សេងៗនៅរាល់ពេលដែលអ្នកតំណើរការវា ប៉ុន្ដែគួរអោយ
សោកស្ដាយ ដោយអ្នកអាច រក្សាទុកនូវតំលៃតែមួយប៉ុណ្ណោះក្នុងពេលតែមួយ និង ក្នុង variable មួយ ។
Array គឺជា variable ពិសេសដែលអនុញ្ញាតអោយអ្នក ផ្ទុកនូវតំលៃបានច្រើននៅក្នុង variable មួយ ។ រាល់តំលៃនិមួយៗត្រូវបានរក្សាទុកនៅក្នុង index របស់ array ដែលអាច ជាលេខ ឬ ជា តួអក្សរ ។ ជា default ធាតុរបស់ array ដែលជា index គឺចាប់ផ្ដើមពីលេខ ០ ។ ហេតុអ្វីបានជាត្រូវប្រើប្រាស់ array ?
ប្រសិនបើអ្នកមានតំលៃចំនួន ៥ ដែលត្រូវរក្សារទុក នោះអ្នកប្រាកដជាត្រូវបង្កើត variable ចំនួនប្រាំផងដែរArray គឺ flexible ព្រោះវាអាចផ្ទុកតំលៃបានពីរ ឬ ពីររយ តំលៃ ដោយពុំ មានការង្កើតនូវvariableថីទៀតហើយ array ក៏អាចអោយអ្នកធ្វើការជា
មួយតំលៃរបស់ វា បានយ៉ាងងាយ ដូចជា ការ loop ធាតុរបស់ array និមួយៗ ឬ តំរាបធាតុរបស់វាទៅលំដាប់នៃលេខរៀង ឬ ជាតួអក្សរ ទៅតាមការកំនត់នៅក្នុង system របស់អ្នក ។ ខាងក្រោមគឺជាការបង្ហាញនូវធាតុរបស់ users array ដែលមានធាតុទី៤ ជា index ទី៣ នៃ users ។
a
PHP ក៏បានផ្ដល់នូវលទ្ធភាពដើម្បីរៀបចំនូវ indexed របស់ array ដោយការប្រើប្រាស់ទាំង លេខ និង អក្សរផងដែរ។
2. Creating Arrays . អ្នកអាចបង្កើតនូវ array variable ដោយប្រេិវិធីពីរយ៉ាងគឺ ការប្រើប្រាស់ array() construct ឬ ការប្រើប្រាស់នូវសញ្ញា square brackets ( [ ] ) ។ 2.1 Defining Arrays with the array()Construct.
array()construct វាមានសារៈប្រយោជន៍នៅពេលដែលអ្នកចង់ផ្ដល់តំលៃច្រើនទៅអោយ array ក្នុងពេលតែមួយ។
ខាងក្រោមគឺឧទាហរណ៍នៃការបង្កើត array មួយដែលមានឈោះថា $users ហើយយើងបានផ្ដល់តំលៃជា string ចំនួនបួន
តំលៃទៅអោយវា ។
$users = array (“Sok”, “Sao”, “Mata”, “Mesa”);
ឥឡូវនេះអ្នកអាចយកធាតុរបស់ $users មកប្រើប្រាស់ដោយការប្រើប្រាស់ index របស់ array
print $users[2];
លទ្ធផលនៃឧទាហរណ៍ខាងលើនឹង បង្ហាញជាអក្សរ Mata ដែល index របស់វាហើយត្រូវបានដាក់នៅចន្លោះ square brackets ( [2] ) បន្ទាប់ពីឈោះរបស់ array ( $users ) ។
2.2 Defining or Adding to Arrays with the Array Identifier.
អ្នកអាចបង្កើត array ថី ឬ បន្ថែមតំលៃទៅអោយ array បានដោយការប្រើប្រាស់នូវ array Identifier 
array identifier គឺជាបន្ដុំនៃ squre brackets និង index របស់វា ជាលេខ ឬ ជាឈោះ។ខាងក្រោមជា ឧទាហរណ៍នៃការបង្កើត $users array ដោយប្រើវីធីសាស្ដ្រមួយផ្សេងទៀត ។
$users[] = ” Sok”;
$users[] = ” Sao”;
$users[] = ” Dara”;
$users[] = ” Mesa”;
ឧទាហរណ៍ខាងលើមិនទាមទារអោយអ្នកដាក់នូវតំលៃលេខដែលជា index នៅចន្លោះ square Brackets នោះឡើយ ព្រោះ PHP នឹងផ្ដល់តំលៃ index ដោយស្វ័យប្រវត្ដិទៅអោយ array ។ ម្យ៉ាងវិញទៀតអ្នកក៏អាចដាក់នូវតំលៃជា index របស់ array បានផងដែរ ប៉ុន្ដែមិន មានការគាំទ្រ អោយធ្វើបែបនេះនោះទេសូមពិនិត្យមើល ការសរសេរកូដខាងក្រោមៈ
$users[0] = “Phanit”; .
$users[200] = “Ratana”;
Array ខាងលើមានធាតុត្រឹមតែពីរប៉ុណ្ណោះ ប៉ុន្ដែ index ចុងក្រោយរបស់វាគឺជា index ទី២០០ PHP នឹងមិនកំនត
តំលៃធាតុទៅអោយ index ដែលនៅចន្លោះ នោះឡើយ ដែលធ្វើអោយ មានការភាន់ច្រឡំ នៅពេល ដែលចង់ព្យាយាមយកធាតុ ដែលមានក្នុង array នោះមកប្រើ ខណៈពេលដែលអ្នកចង់ប្រើនូវ ធាតុរបស់ វា ណាមួយទៅតាមចិត្ដរបស់អ្នក។ សំរាប់ការបង្កើត array អ្នកអាចប្រើ នូវ array() contstruct រួច ប្រើនូវ array identifier ដើម្បីបន្ថែមនូវធាតុថμីទៀតក៏បាន ។
សូមពិនិត្យឧទាហរណ៍ខាងក្រោម ៖
$users = array (“Sok”, “Sao”, “Mata”, “Mesa”); .
$users[] = “Menear”; .
3. Populating an Array with array_fill() .ប្រសិនបើអ្នកចង់ដាក់នូវតំលៃជា default នៅចន្លោះនៃ index array នោះអ្នកប្រហែលជាប្រើនូវ array() function ដូចខាងក្រោម ។
$member = array (“cambodia”, “cambodia”, “cambodia”,”cambodia “); .ឬ អ្នកអាចប្រើប្រាស់នូវ array ម្យ៉ាងទៀតដូចជា
$member[] = “Cambodia”; .
$member[] = “Cambodia”; .
$member[] = “Cambodia”;.
$member[] = “Cambodia”; .
PHP បានផ្ដល់នូវ function ដើម្បីដោះស្រាយនូវបញ្ហានេះដោយប្រើនូវ array_fill() function ដែលតំរូវអោយអ្នកផ្ដល់នូវ arguments ចំនួន៣សំរាប់ function នេះ ទី១គឺជាតំលៃ index ដែលចាប់ផ្ដើម
ទីពីគឺជា ចំនួនធាតុដែលអ្នកចង់បាន ហើយ argument ទី៣ គឺជាតំលៃដែលអ្នកត្រូវផ្ដល់អោយជាធាតុរបស់Array ។
ដោយការប្រើប្រាស់នូវ array_fill() function អ្នកអាចសរសេរនូវបំណែកកូដខាងលើឡើងវិញ ដូចខាងក្រោម ៖
$member = array_fill( 0, 4, “Cambodia” ); .
ឧទាហរណ៍ៈ ២៤
<?
$member = array_fill(0,4,”Cambodia”);
$member[] = “Malaysia”;
print $users[2];
?>
4. Associative Arrays .
Assosciate array គឺជា array ដែលប្រើប្រាស់នូវ index ជាអក្សរនៅ ចន្លោះ squqre braketsអ្នកអាចបង្កើតនូវ assosciate array ដោយ array construct( array() )ឬ array identifier (array[])
ឧទាហរណ៍
$character = array(“name” => “Sok”, .
“occupation” => “Student”,
“age” => 12,
“Adr” => “Phnom Pehn” );
ឥឡូវនេះយើងអាចប្រើប្រាស់នូវធាតុ array របស់ $character ដូចខាងក្រោមៈ
print $character[‘occupation’]; .
keys ដែលនៅក្នុង assosciate array គឺជា string ដូច្នេះ engine នឹងបង្ហាញរបាយការណ៍ error ប្រសិនបើ keys នៃ array មិនមាន quoted ។ ដូច្នេះអ្នកគួរតែប្រើនូវ quotation marks នៅពេលដែលអ្នកប្រើkeys នៃ array ជា string ។
print $character[occupation]; // មិនត្រឹមត្រូវ
print $character[“occupation”]; // ត្រឹមត្រូវ
ប្រសិនបើ key ត្រូវផ្ទុកនៅក្នុង variable នោះ អ្នកមិនចាំបាច់ត្រូវប្រើ quotation mark នោះឡើយ ។
$occ = “occupation”; .
print $character[$occ]; // ត្រឹមត្រូវ
4.1 Directly Defining or Adding to an Associative Array . អ្នកអាចបង្កើត ឬ បន្ថែម ឈោះ/តំលៃ ទៅអោយ associate array ដោយការផ្ដល់នូវតំលៃទៅអោយឈោះនៃធាតុរបស់ array ដួចខាងក្រោម ។
$character[“name”] = “sok”; .
$character[“occupation”] = “Programmer”; .
$character[“age”] = 30; .
$character[“address”] = “Phnom Penh”;.
5. Getting the Size of an Array .
count() function ផ្ដល់នូវចំនួនធាតុរបស់ array ដែលមាន បំណែកកូដខាងក្រោមយើងបានប្រើប្រាស់ នូវ count()function ដើម្បីយកធាតុចុងក្រោយនៃ array $users មកប្រើ ។
$users = array (“Sambath”, “Ratana”, “Davy”, “Ryda” ); .
print $users[count($users)-1]; .
ឧទាហរណ៍ ២៦
<html>
<body>
<head>
<title>Getting size of array</title>
<body>
<h2>Getting size of array</h2>
<?php
$users[]=”Sok”;
$users[]=”Som”;
$users[]=”Mom”;
$users[]=”Mab”;
print “<br/>”.count($users);
?>
</body>
</html>
ចំណាំ ៖ count() ផ្ដល់តំលៃនៃចំនួនសរុបរបស់ធាតុ array មិនមែនជាតំលៃនៃ index ចុងក្រោយនោះទេ ។
ឧទាហរណ៍ខាងក្រោមនេះគឺការបង្កើត array ដោយការផ្ដល់នូវ index ទៅអោយ array ដោយខ្លួនអ្នក
$users[35] =”Sok”;
$users[52] =”Som”;
$users[890] =”Mom”;
$users[52]=”Mab”;
count() នៅតែផ្ដល់នូវចំនួនសរុបនៃធាតុ array ដដែល គឺមានចំនួន ៤ ធាតុ ។ ហើយអ្នកក៏អាចទទួលនូវ
ធាតុរបស់ array ចុងក្រោយបានដោយការប្រើនូវ end() function ដែលទាមទារត្រឹមតែ argument
មួយ ប៉ុណ្ណោះ ។ ឧទាហរណ៍ print end($users);
6. Looping Through an Array . foreach statement គឺជាវិធីសាស្ដ្រមួយយ៉ាងប្រសើរដើម្បី loop រាល់ធាតុនិមួយៗដែលមាននៅ ក្នុង array ។
អ្នកអាចប្រើប្រាស់នូវ foreach statement ដូចខាងក្រោម ៖
foreach( $arr as $temp )
{
//………….
}.
$arr គឺជា array ដែលអ្នកត្រូវ loop ហើយ $temp គឺជា variableដែលអ្នកនឹងត្រូវរក្សារទុកជាបណ្ដោះអាសន្ន នូវធាតុនិមួយៗ ក្នុងគ្រា loop ។ កូដខាងក្រោមគឺជាការបង្កើត array មួយហើយយើង ប្រើ foreach statement ដើម្បីយកធាតុនិមួយៗមក បង្ហាញលើ browser ។
ឧទាហរណ៍ ២៦
<html>
<head>
<title>Looping throught array</title>
</head>
<body>
<h2>Looping througth array</h2>
<?php
$users = array (“Sok”, “Som”, “Mab”, “Mab” );
foreach ( $users as $val )
{
print “$val<br />”;
}
?>
</body>
</html>
ឧទាហរណ៍ ២៧
<html>
<head>
<title>Looping throught array</title>
</head>
<body>
<h2>Looping througth array</h2>
<?php
$users[]=”Sok”;
$users[]=”Som”;
$users[]=”Mom”;
$users[]=”Mab”;
foreach( $user as $val )
{
print “$val<br/>
}
?>
</body>
</html>
6.1 Looping Through an Associative Array .
ដើម្បីប្រើប្រាស់នូវ foreach statement ជាមួយ assosciat array ទាំង keys និង values អ្នកអាចប្រើប្រាស់ជាមួយនឹង foreach statement ដូចខាងក្រោម ៖
foreach( $arr as $key=>$value ) .
{
//…..
}
$arr គឺជា array ដែលយើងនឹងត្រូវ loop ហើយ $key គឺជា variable ដែលផ្ទុកនូវ key និមួយៗជាបណ្ដោះអាសន្ន ហើយ $val គឺជា variable ដែលផ្ទុកនូវ value របស់ array និមួយៗជាបណ្ដោះអាសន្នក្នុងគ្រា loop ម្ដងៗ ។
ឧទហរណ៍ ២៨
01: <html>
02: <head>
03: <title>Looping thought associate array</title>
04: </head>
05: <body>
06: <h2> Looping thought associate array</h2>
07:
08: <?php
09:
10: $character = array (“name” => “Sao”,
11: “occupation” => “Student”,
12: “age” => 12,
13: “Adr” => “Phnom Pehn”);
14:
15: foreach ( $character as $key=>$val )
16: {
17: print “$key = $val<br />”;
18: }
19:
20: ?>
21:
22: </body>
23: </html>
Arrayដែលបានបង្កើតនៅបន្ទាត់ទី១១ ហើយប្រើប្រាស់នូវ foreach statement នៅបន្ទាត់ទី ១៥
ដើម្បី loop នូវធាតុដែលជាតំលៃ និង key របស់វា ។ រាល់ key និមួយត្រូវបានផ្ទុកនៅក្នុង variable ដែល ផ្ដល់ឈេμាះអោយថា $key និង រាល់ value និមួយៗត្រូវបានផ្ទុកនៅក្នុង variable ដែលផ្ដល់ឈេμាះថា $val
ហើយត្រូវបានបង្ហាញជាលទ្ធផលទៅកាន់ browser នៅបន្ទាត់ទី ១៧ ។

មេរៀនទី៥:  PHP- Array
1. What Is an Array?
អ្នកក៏បានស្គាល់រួចមកហើយអំពី variable ដែលត្រូវគេប្រើដើម្បីផ្ទុកនូវតំលៃផ្សេងៗ ។ ដោយការប្រើប្រាស់ variable អ្នកក៏អាចបង្កើតជា script អោយប្រតិបត្ដិការ ឬ បង្ហាញជា ពត៌មានផ្សេងៗនៅរាល់ពេលដែលអ្នកតំណើរការវា ប៉ុន្ដែគួរអោយ
សោកស្ដាយ ដោយអ្នកអាច រក្សាទុកនូវតំលៃតែមួយប៉ុណ្ណោះក្នុងពេលតែមួយ និង ក្នុង variable មួយ ។
Array គឺជា variable ពិសេសដែលអនុញ្ញាតអោយអ្នក ផ្ទុកនូវតំលៃបានច្រើននៅក្នុង variable មួយ ។ រាល់តំលៃនិមួយៗត្រូវបានរក្សាទុកនៅក្នុង index របស់ array ដែលអាច ជាលេខ ឬ ជា តួអក្សរ ។ ជា default ធាតុរបស់ array ដែលជា index គឺចាប់ផ្ដើមពីលេខ ០ ។ ហេតុអ្វីបានជាត្រូវប្រើប្រាស់ array ?
ប្រសិនបើអ្នកមានតំលៃចំនួន ៥ ដែលត្រូវរក្សារទុក នោះអ្នកប្រាកដជាត្រូវបង្កើត variable ចំនួនប្រាំផងដែរArray គឺ flexible ព្រោះវាអាចផ្ទុកតំលៃបានពីរ ឬ ពីររយ តំលៃ ដោយពុំ មានការង្កើតនូវvariableថីទៀតហើយ array ក៏អាចអោយអ្នកធ្វើការជា
មួយតំលៃរបស់ វា បានយ៉ាងងាយ ដូចជា ការ loop ធាតុរបស់ array និមួយៗ ឬ តំរាបធាតុរបស់វាទៅលំដាប់នៃលេខរៀង ឬ ជាតួអក្សរ ទៅតាមការកំនត់នៅក្នុង system របស់អ្នក ។ ខាងក្រោមគឺជាការបង្ហាញនូវធាតុរបស់ users array ដែលមានធាតុទី៤ ជា index ទី៣ នៃ users ។
a
PHP ក៏បានផ្ដល់នូវលទ្ធភាពដើម្បីរៀបចំនូវ indexed របស់ array ដោយការប្រើប្រាស់ទាំង លេខ និង អក្សរផងដែរ។
2. Creating Arrays . អ្នកអាចបង្កើតនូវ array variable ដោយប្រេិវិធីពីរយ៉ាងគឺ ការប្រើប្រាស់ array() construct ឬ ការប្រើប្រាស់នូវសញ្ញា square brackets ( [ ] ) ។ 2.1 Defining Arrays with the array()Construct.
array()construct វាមានសារៈប្រយោជន៍នៅពេលដែលអ្នកចង់ផ្ដល់តំលៃច្រើនទៅអោយ array ក្នុងពេលតែមួយ។
ខាងក្រោមគឺឧទាហរណ៍នៃការបង្កើត array មួយដែលមានឈោះថា $users ហើយយើងបានផ្ដល់តំលៃជា string ចំនួនបួន
តំលៃទៅអោយវា ។
$users = array (“Sok”, “Sao”, “Mata”, “Mesa”);
ឥឡូវនេះអ្នកអាចយកធាតុរបស់ $users មកប្រើប្រាស់ដោយការប្រើប្រាស់ index របស់ array
print $users[2];
លទ្ធផលនៃឧទាហរណ៍ខាងលើនឹង បង្ហាញជាអក្សរ Mata ដែល index របស់វាហើយត្រូវបានដាក់នៅចន្លោះ square brackets ( [2] ) បន្ទាប់ពីឈោះរបស់ array ( $users ) ។
2.2 Defining or Adding to Arrays with the Array Identifier.
អ្នកអាចបង្កើត array ថី ឬ បន្ថែមតំលៃទៅអោយ array បានដោយការប្រើប្រាស់នូវ array Identifier 
array identifier គឺជាបន្ដុំនៃ squre brackets និង index របស់វា ជាលេខ ឬ ជាឈោះ។ខាងក្រោមជា ឧទាហរណ៍នៃការបង្កើត $users array ដោយប្រើវីធីសាស្ដ្រមួយផ្សេងទៀត ។
$users[] = ” Sok”;
$users[] = ” Sao”;
$users[] = ” Dara”;
$users[] = ” Mesa”;
ឧទាហរណ៍ខាងលើមិនទាមទារអោយអ្នកដាក់នូវតំលៃលេខដែលជា index នៅចន្លោះ square Brackets នោះឡើយ ព្រោះ PHP នឹងផ្ដល់តំលៃ index ដោយស្វ័យប្រវត្ដិទៅអោយ array ។ ម្យ៉ាងវិញទៀតអ្នកក៏អាចដាក់នូវតំលៃជា index របស់ array បានផងដែរ ប៉ុន្ដែមិន មានការគាំទ្រ អោយធ្វើបែបនេះនោះទេសូមពិនិត្យមើល ការសរសេរកូដខាងក្រោមៈ
$users[0] = “Phanit”; .
$users[200] = “Ratana”;
Array ខាងលើមានធាតុត្រឹមតែពីរប៉ុណ្ណោះ ប៉ុន្ដែ index ចុងក្រោយរបស់វាគឺជា index ទី២០០ PHP នឹងមិនកំនត
តំលៃធាតុទៅអោយ index ដែលនៅចន្លោះ នោះឡើយ ដែលធ្វើអោយ មានការភាន់ច្រឡំ នៅពេល ដែលចង់ព្យាយាមយកធាតុ ដែលមានក្នុង array នោះមកប្រើ ខណៈពេលដែលអ្នកចង់ប្រើនូវ ធាតុរបស់ វា ណាមួយទៅតាមចិត្ដរបស់អ្នក។ សំរាប់ការបង្កើត array អ្នកអាចប្រើ នូវ array() contstruct រួច ប្រើនូវ array identifier ដើម្បីបន្ថែមនូវធាតុថμីទៀតក៏បាន ។
សូមពិនិត្យឧទាហរណ៍ខាងក្រោម ៖
$users = array (“Sok”, “Sao”, “Mata”, “Mesa”); .
$users[] = “Menear”; .
3. Populating an Array with array_fill() .ប្រសិនបើអ្នកចង់ដាក់នូវតំលៃជា default នៅចន្លោះនៃ index array នោះអ្នកប្រហែលជាប្រើនូវ array() function ដូចខាងក្រោម ។
$member = array (“cambodia”, “cambodia”, “cambodia”,”cambodia “); .ឬ អ្នកអាចប្រើប្រាស់នូវ array ម្យ៉ាងទៀតដូចជា
$member[] = “Cambodia”; .
$member[] = “Cambodia”; .
$member[] = “Cambodia”;.
$member[] = “Cambodia”; .
PHP បានផ្ដល់នូវ function ដើម្បីដោះស្រាយនូវបញ្ហានេះដោយប្រើនូវ array_fill() function ដែលតំរូវអោយអ្នកផ្ដល់នូវ arguments ចំនួន៣សំរាប់ function នេះ ទី១គឺជាតំលៃ index ដែលចាប់ផ្ដើម
ទីពីគឺជា ចំនួនធាតុដែលអ្នកចង់បាន ហើយ argument ទី៣ គឺជាតំលៃដែលអ្នកត្រូវផ្ដល់អោយជាធាតុរបស់Array ។
ដោយការប្រើប្រាស់នូវ array_fill() function អ្នកអាចសរសេរនូវបំណែកកូដខាងលើឡើងវិញ ដូចខាងក្រោម ៖
$member = array_fill( 0, 4, “Cambodia” ); .
ឧទាហរណ៍ៈ ២៤
<?
$member = array_fill(0,4,”Cambodia”);
$member[] = “Malaysia”;
print $users[2];
?>
4. Associative Arrays .
Assosciate array គឺជា array ដែលប្រើប្រាស់នូវ index ជាអក្សរនៅ ចន្លោះ squqre braketsអ្នកអាចបង្កើតនូវ assosciate array ដោយ array construct( array() )ឬ array identifier (array[])
ឧទាហរណ៍
$character = array(“name” => “Sok”, .
“occupation” => “Student”,
“age” => 12,
“Adr” => “Phnom Pehn” );
ឥឡូវនេះយើងអាចប្រើប្រាស់នូវធាតុ array របស់ $character ដូចខាងក្រោមៈ
print $character[‘occupation’]; .
keys ដែលនៅក្នុង assosciate array គឺជា string ដូច្នេះ engine នឹងបង្ហាញរបាយការណ៍ error ប្រសិនបើ keys នៃ array មិនមាន quoted ។ ដូច្នេះអ្នកគួរតែប្រើនូវ quotation marks នៅពេលដែលអ្នកប្រើkeys នៃ array ជា string ។
print $character[occupation]; // មិនត្រឹមត្រូវ
print $character[“occupation”]; // ត្រឹមត្រូវ
ប្រសិនបើ key ត្រូវផ្ទុកនៅក្នុង variable នោះ អ្នកមិនចាំបាច់ត្រូវប្រើ quotation mark នោះឡើយ ។
$occ = “occupation”; .
print $character[$occ]; // ត្រឹមត្រូវ
4.1 Directly Defining or Adding to an Associative Array . អ្នកអាចបង្កើត ឬ បន្ថែម ឈោះ/តំលៃ ទៅអោយ associate array ដោយការផ្ដល់នូវតំលៃទៅអោយឈោះនៃធាតុរបស់ array ដួចខាងក្រោម ។
$character[“name”] = “sok”; .
$character[“occupation”] = “Programmer”; .
$character[“age”] = 30; .
$character[“address”] = “Phnom Penh”;.
5. Getting the Size of an Array .
count() function ផ្ដល់នូវចំនួនធាតុរបស់ array ដែលមាន បំណែកកូដខាងក្រោមយើងបានប្រើប្រាស់ នូវ count()function ដើម្បីយកធាតុចុងក្រោយនៃ array $users មកប្រើ ។
$users = array (“Sambath”, “Ratana”, “Davy”, “Ryda” ); .
print $users[count($users)-1]; .
ឧទាហរណ៍ ២៦
<html>
<body>
<head>
<title>Getting size of array</title>
<body>
<h2>Getting size of array</h2>
<?php
$users[]=”Sok”;
$users[]=”Som”;
$users[]=”Mom”;
$users[]=”Mab”;
print “<br/>”.count($users);
?>
</body>
</html>
ចំណាំ ៖ count() ផ្ដល់តំលៃនៃចំនួនសរុបរបស់ធាតុ array មិនមែនជាតំលៃនៃ index ចុងក្រោយនោះទេ ។
ឧទាហរណ៍ខាងក្រោមនេះគឺការបង្កើត array ដោយការផ្ដល់នូវ index ទៅអោយ array ដោយខ្លួនអ្នក
$users[35] =”Sok”;
$users[52] =”Som”;
$users[890] =”Mom”;
$users[52]=”Mab”;
count() នៅតែផ្ដល់នូវចំនួនសរុបនៃធាតុ array ដដែល គឺមានចំនួន ៤ ធាតុ ។ ហើយអ្នកក៏អាចទទួលនូវ
ធាតុរបស់ array ចុងក្រោយបានដោយការប្រើនូវ end() function ដែលទាមទារត្រឹមតែ argument
មួយ ប៉ុណ្ណោះ ។ ឧទាហរណ៍ print end($users);
6. Looping Through an Array . foreach statement គឺជាវិធីសាស្ដ្រមួយយ៉ាងប្រសើរដើម្បី loop រាល់ធាតុនិមួយៗដែលមាននៅ ក្នុង array ។
អ្នកអាចប្រើប្រាស់នូវ foreach statement ដូចខាងក្រោម ៖
foreach( $arr as $temp )
{
//………….
}.
$arr គឺជា array ដែលអ្នកត្រូវ loop ហើយ $temp គឺជា variableដែលអ្នកនឹងត្រូវរក្សារទុកជាបណ្ដោះអាសន្ន នូវធាតុនិមួយៗ ក្នុងគ្រា loop ។ កូដខាងក្រោមគឺជាការបង្កើត array មួយហើយយើង ប្រើ foreach statement ដើម្បីយកធាតុនិមួយៗមក បង្ហាញលើ browser ។
ឧទាហរណ៍ ២៦
<html>
<head>
<title>Looping throught array</title>
</head>
<body>
<h2>Looping througth array</h2>
<?php
$users = array (“Sok”, “Som”, “Mab”, “Mab” );
foreach ( $users as $val )
{
print “$val<br />”;
}
?>
</body>
</html>
ឧទាហរណ៍ ២៧
<html>
<head>
<title>Looping throught array</title>
</head>
<body>
<h2>Looping througth array</h2>
<?php
$users[]=”Sok”;
$users[]=”Som”;
$users[]=”Mom”;
$users[]=”Mab”;
foreach( $user as $val )
{
print “$val<br/>
}
?>
</body>
</html>
6.1 Looping Through an Associative Array .
ដើម្បីប្រើប្រាស់នូវ foreach statement ជាមួយ assosciat array ទាំង keys និង values អ្នកអាចប្រើប្រាស់ជាមួយនឹង foreach statement ដូចខាងក្រោម ៖
foreach( $arr as $key=>$value ) .
{
//…..
}
$arr គឺជា array ដែលយើងនឹងត្រូវ loop ហើយ $key គឺជា variable ដែលផ្ទុកនូវ key និមួយៗជាបណ្ដោះអាសន្ន ហើយ $val គឺជា variable ដែលផ្ទុកនូវ value របស់ array និមួយៗជាបណ្ដោះអាសន្នក្នុងគ្រា loop ម្ដងៗ ។
ឧទហរណ៍ ២៨
01: <html>
02: <head>
03: <title>Looping thought associate array</title>
04: </head>
05: <body>
06: <h2> Looping thought associate array</h2>
07:
08: <?php
09:
10: $character = array (“name” => “Sao”,
11: “occupation” => “Student”,
12: “age” => 12,
13: “Adr” => “Phnom Pehn”);
14:
15: foreach ( $character as $key=>$val )
16: {
17: print “$key = $val<br />”;
18: }
19:
20: ?>
21:
22: </body>
23: </html>
Arrayដែលបានបង្កើតនៅបន្ទាត់ទី១១ ហើយប្រើប្រាស់នូវ foreach statement នៅបន្ទាត់ទី ១៥
ដើម្បី loop នូវធាតុដែលជាតំលៃ និង key របស់វា ។ រាល់ key និមួយត្រូវបានផ្ទុកនៅក្នុង variable ដែល ផ្ដល់ឈេμាះអោយថា $key និង រាល់ value និមួយៗត្រូវបានផ្ទុកនៅក្នុង variable ដែលផ្ដល់ឈេμាះថា $val
ហើយត្រូវបានបង្ហាញជាលទ្ធផលទៅកាន់ browser នៅបន្ទាត់ទី ១៧ ។
a
7. Joining Two Arrays with array_merge() .
array_merge() មានតួនាទីផ្គុំនូវធាតុរបស់ array ពីរ ឬ array ច្រើនបញ្ជូលគ្នា រួចផ្ដល់ជា Array ថμីមួយទៀតដែលជាបន្ដុំនៃធាតុ array ទាំងអស់នោះ។ ឧទាហរណ៍ខាងក្រោមគឺជា ឧទាហរណ៍នៃ ការបង្កើតនូវ array ពីរ គឺ array $arr1 និង array $arr2 ហើយធ្វើការបញ្ចូលគ្នារវាងធាតុនៃ array ទាំងពីររួចផ្ដល់តំលៃទាំងនោះទៅអោយ $arr3 បន្ទាប់មក loop រាល់ធាតុដែលមាននៅក្នុង $arr3 ។
ឧទាហរណ៍ ២៩
array_merge.php .
<html>
<head>
<title>Joining Two array with array_merge()</title>
</head>
<body>
<h2>Using array_merge()</h2>
<?php
$arr1 = array(“a”, “b”, “c”);
$arr2 = array(1,2,3);
$arr3 = array_merge( $arr1,$arr2 );
foreach ( $arr3 as $val )
{
print “$val<br />”;
}
?>
</body>
</html>
$arr3 array ផ្ទុកនូវរាល់ធាតុដែលមាននៅក្នុង $arr1 និង $arr2 array ។ foreach statement
នឹងបង្ហាញនូវបន្ដុំនៃធាតុ array ( ‘a’, ‘b’, ‘c’, 1, 2, 3 ) ជាមួយនឹង <br/> នៅចន្លោះធាតុនិមួយៗ ។
8. Adding Multiple Variables to an Array .
array_push()ទទួលយកនូវ array និង តំលៃផ្សេងពី parameters ដែលតំលៃទាំងនោះ គឺជាធាតុ ដែលនឹងត្រូវបន្ថែមទៅអោយ array ។ array_push() function មិនមានលក្ខណៈដូច array_merge() នោះទេ ពីព្រោះ array ដែលបញ្ជូនទៅជា argument ដំបូងនឹងត្រូវប្រែប្រួល ហើយ array_push() នឹង ផ្ដល់មកវិញនូវតំលៃសរុបទាំងអស
់ដែលមាននៅក្នុង array នោះវិញ ។
ឧទាហរណ៍ ៣០
01: <html>
02: <head><title>Adding Muliple variables to an Array</title></head>
04: <body>
05:
06: <?php
07:
08: $arr1 = array (“a”, “b”, “c”);
09: $total = array_push( $arr1,1,2,3);
10: print “There are $total elements in \$arr1 “;
11:
12: foreach ( $arr1 as $val )
13: {
14: print “$val<br/>”;
15: }
16:
17: ?>
18:
19: </body>
20: </html>
ឥឡូវនេះ $arr1 បានបន្ថែមនូវធាតុជា integer ចំនួនបីធាតុ ដែលបានមកពីការប្រើប្រាស់នូវ array_push() function ដូច្នេះ $arr1 ផ្ទុកនូវតំលៃសរុបចំនួន ៦ ធាតុហើយត្រូវបាន បង្ហាញនូវ ធាតុនិមួយៗទៅកាន់ browser ដោយកូដដែលមាននៅក្នុង foreach statement ។
ចំណាំៈ យើងបានប្រើនូវ backslash ពេលដែល print ជា string “——\$arr1″ នៅបន្ទាត់ទី ១០
ប្រសិនបើអ្នកប្រើនូវ និមិត្ដសញ្ញានៅពីមុខពាក្យ ឬ ឃ្លាណាមួយនោះ PHP នឹងបញ្ចូលជាតំលៃទៅ អោយ ទៅតាមឈោះ variable ។ ឧទាហរណ៍ ខាងលើយើងចង់បង្ហាញនូវ string ‘$arr1′ ដែលមិនមែនជា តំលៃរបស់ variable នោះទេ ដូច្នេះដើម្បី print នូវ special character ($) យើងត្រូវតែប្រើនូវ backslash (\)
នៅពីមុខ ។ ប្រសិនបើអ្នកចង់បន្ថែមធាតុទៅអោយ array ហើយជាធាតុដំបូងទៀតនោះ អ្នកអាចប្រើប្រាស់ជាមួយនឹង array_unsift() ។
ឧទាហរណ៍ ៣១
<html>
<head>
<title>Using array_unsift() </title>
</head>
<body>
<h2>Using array_unsift()</h2>
<?php
$arr1 = array (“a”, “b”, “c”);
$total = array_unshift( $arr1, 1, 2, 3 );
print “There are $total elements in \$arr1 “;
foreach ( $arr1 as $val )
{
print “$val<br/>”;
}
:
?>
</body>
</html>
ឥឡូវនេះ $arr1 array ផ្ទុកនូវតំលៃ 1, 2, 3, “a”, “b”, “c” ។
9. Removing the First Element of an Array with array_shift() .
array_shift() មានតួនាទីយកចេញនូវធាតុទីមួយនៃ array ។សូមពិនិត្យ ឧទាហរណ៍ខាងក្រោមៈ
ឧទាហរណ៍ ៣២
<html>
<head>
<title>Remove first array element with array_shift()</title>
</head>
<body>
<h2>Using array_shift()</h2>
<?php
$user=array(“M”,”U”,”T”,”H”);
$total=count($user);
echo “Before use array_shift() threre are $total element<br/>”;
foreach($user as $val)
{
echo “$val <br/>”;
}
array_shift($user);
$total=count($user);
echo “after use array_shift() there are $total element</br>”;
foreach($user as $val)
{
print “$val <br/>”;
}
?>>
a
</body>
</html>
10. Slicing Arrays with array_slice() .
array_slice() អនុញ្ញាតអោយអ្នកទាញយកចំនួននៃធាតុ array ដែលទាមទារអោយអ្នកផ្ដល់នូវ
argument ចំនួនបី ទីមួយគឺជា array variable ទី២ជាទីតាំដែលត្រូវចាប់ផ្ដើមយក និងទីបី គឺជា ចំនួន ធាតុ របស់ array ដែលត្រូវការហើយ argument ទីបីនេះគឺ (optional) ប្រសិនបើអ្នក មិន ប្រើនូវ argument នេះទេ array_slice() និងចាប់យកនូវធាតុទាំងអស់នៃ array ចាប់ពីទីតាំង ដែល អ្នកបានផ្ដល់ជាតំលៃនៅ ក្នុង argument ទី១មក។
ឧទាហរណ៍ ៣៣
<html>
<head><title>Using array_slice()</title>
</head>
<body>
<h2>Using array_slice()</h2>
<?php
$first = array (“a”, “b”, “c”, “d”, “e”, “f”);
$second = array_slice($first, 2, 3);
foreach ( $second as $val )
{
print “$val<br />”;
}
?>
</body>
</html>
កូដដែលបង្កើតនៅឧទាហរណ៍ ៣៣ នឹងបង្ហាញនូវលទ្ធផល ‘c’, ‘d’, និង ‘e’ ដែលជាធាតុរបស់
$secend បន្ទាប់ពីប្រើនូវ array_slice() ដោយយកធាតុទាំងអស់របស់ $first ។
11. Sorting Arrays .
11.1 Sorting Numerically Indexed Arrays with sort() .sort() ទទួលយកនូវ argument មួយដែលជា array ហើយធ្វើការតំរៀបវាទៅតាមលំដាប់នៃតួ អក្សរឬពីតូចទៅធំ ឧទាហរណ៍ ៣៤ គឺជាការបង្កើត array ដោយផ្ដល់នូវតំលៃជា string ទៅអោយបន្ទាប់មកយើងប្រើ sort() ដើម្បីតំរៀបធាតុទាំងនោះពី A-Z ឬ ពីតូចទៅធំ រួចបង្ហាញជាលទ្ធផលទៅកាន់ Browser ។
សូមពិនិត្យក្នុងឧទាហរណ៍ ៣៤
<html>
<head><title> sorting array with sort() function</title>
</head>
<body>
<h2>Using sort() function </h2>
<?php
$s_array = array (“Bayon”, “Taprom”, “Angkor”, “Presh vihear”);
sort( $s_array );
foreach ( $s_array as $var )
{
print “$var<br />”;
}
?>
</body>
</html>
អ្នកក៏អាចផ្លាស់ប្ដូរនូវលំដាប់នៃការតំរៀបធាតុរបស់ array ពីលំដាប់ តូចទៅធំ ឬ ពីលំដាប់ធំ ទៅតូចវិញដោយការប្រើនូវ rsort()។ សូមកុំព្យាយាមប្រើ sort()ឬ rsort() ជាមួយ associate array ពីព្រោះ វានឹងធ្វើអោយអ្នកបាត់បង់នូវ key របស់ array ។
11.2 Sorting an Associative Array by Value with asort() .
assort() ទទួលយក argument ដែលជាប្រភេទ associate array ហើយធ្វើការតំរៀបតំលៃ របស់ array នោះពី A-Z ឬ ជាតំលៃលេខ ពីតូចទៅធំ អាស្រ័យទៅលើប្រភេទនៃតំលៃ ។
ឧទាហរណ៍ ៣៥
<html>
<head><title> sorting an associate array by value with assort() </title>
<head>
<body>
<h2>sorting an associate array by value with assort()</h2>
<?php
$first = array(“Cocacola”=>3,”Pepsi”=>2,”Fanta”=>1);
echo “<b>an associate Array before use asort </b> <br/>”;
foreach ( $first as $key => $val )
{
print “$key = $val<br />”;
}
echo “<b>an associate Array after asort </b><br/>”;
asort( $first );
foreach ( $first as $key => $val )
{
print “$key = $val<br />”;
}
?>
</body>
<html>
សំរាប់ការប្ដូរលំដាប់នៃការតំរៀបពីតូចទៅធំ ឬ ពីធំទៅតូច អ្នកអាចប្រើរនូវ arsort() 
a
11.3 Sorting an Associative Array by Key with ksort() .
ksort() ទទួលនូវ argument ដែលជា associate array ហើយធ្វើការតំរៀបតំលៃ របស់វា និមួយៗទៅតាមលំដាប់ពី A-Z ឬ ជាលេខ ពីធំទៅតូច ដោយអាស្រ័យទៅលើ key របស់ array នោះ ។
ឧទាហរណ៍ ៣៦
<html>
<head><title> sorting an associate array by key with assort() </title>
<head>
<body>
<h2>sorting an associate array by key with kssort()</h2>
<?php
$first = array(“Cocacola”=>3,”Pepsi”=>2,”Fanta”=>1);
echo “<b>an associate Array before use ksort </b> <br/>”;
foreach ( $first as $key => $val )
{
print “$key = $val<br />”;
}
echo “<b>an associate Array after use ksort </b><br/>”;
ksort( $first );
foreach ( $first as $key => $val )
{
print “$key = $val<br />”;
}
?>
</body>
<html>
មេរៀនទី៦: PHP- Object
1. What Is an Object ?
Object គឺជា បណ្ដុំនៃ variables និង functions ដែលឋិតនៅក្នុង template ពិសេសមួយដែល គេហៅថា class ។ object លាក់នូវតំណើរការដែលមាននៅខាងក្នុង ពីការប្រើប្រាស់វា ដោយផ្ដល់ជា Interface សំរាប់អោយអ្នកបញ្ជូននូវ បញ្ជារដើម្បីទទួលពត៌មានត្រលប់មកវិញ ។ interface ទាំងនោះ គឺជា Function ពិសេសដែលគេអោយឈោះ methods ហើយរាល់ methods ទាំងអស់នៃ object គឺត្រូវតែ Access ទៅកាន់ special variable ហៅថា properties។ គុណសម្បត្ដិរបស់ object-oriented code គឺផ្ដល់នូវការកាត់បន្ថយការសរសេរកូដ ដដែលៗពីព្រោះ class ដែលបាន
បង្កើត ជា object មានភាពងាយស្រួលយកទៅប្រើប្រាស់ពី project មួយទៅកាន់Project មួយ ផ្សេងទៀត ។ បន្ថែមពីនេះវាមានលទ្ធភាពបង្កើត នូវ child classes ដែល inherit ហើយនឹង Override នូវលក្ខណៈផ្សេងៗពី parents class ។
2. Creating an Object
ដើម្បីបង្កើត object មួយអ្នកត្រូវតែរៀបចំនូវ template មួយដើម្បីអោយវាអាច instantiated ដែល template នេះគឺជា class នៅក្នុងភាសា PHP ដើម្បីប្រកាស class មួយអ្នកត្រូវតែប្រើ class Keyword ។
class Person
{
// a very minimal class
}
Person class គឺជាមូលដ្ឋានដ៏សំខាន់មួយដែលអ្នកអាច instantiate រាល់តំលៃ និមួយៗពី PersonObject ។ ដើម្បីបង្កើត instance មួយនៃ object អ្នកត្រូវតែប្រើ new statement ។
$obj1 = new Person(); .
$obj2 = new Person(); .
print “\$obj1 is an “.gettype($obj1).”<br />”; .
print “\$obj2 is an “.gettype($obj2).”<br />”; .
អ្នកអាច test នូវ $obj1 និង $obj2 ជាមួយនឹង gettype() function ។ gettype function ទទួលតំលៃVariable និមួយៗហើយផ្ដល់ជា string មកវិញដែលប្រាប់អ្នកអំពីអ្វីដែលអ្នកកំពុងតែធ្វើការជាមួយ ។
3. Object Properties
Object ដែល access ទៅកាន់ special variable ត្រូវបានគេហៅថា properties ។ អ្នកអាច ប្រកាស នូវ special variable ទាំងនោះបាននៅគ្រប់ទីកន្លែងទាំងអស់នៃ class ប៉ុន្ដែដើម្បីអោយ មានភាពងាយស្រួលអ្នកគួរតែប្រកាស់វានៅខាងលើ ។ សំរាប់ property មួយវាអាចជា value ឬ ជា array ឬ ជាObject ផ្សេងៗ ។
class Person .
{
var $name = “Vichet”; .
}
យើងបាន declared នូវ variable ជាមួយនឹង var keyword ដែលនេះគឺជាវិធីសាស្ដ្រ តែមួយ គត់ដើម្បី declare នូវ property មួយនៅក្នុងភាសា PHP 4 យើងនឹងឃើញពីលក្ខណៈបន្ថែមរបស់ PHP 5 នៅឧទាហរណ៍ក្រោយៗទៀត ។ ដូច្នេះប្រសិនបើអ្នកចង់សរសេរកូដអោយ compatible ជាមួយ PHP 4 នោះ អ្នកត្រូវតែប្រើ var keyword។ ឥឡូវនេះ Person objet ដែលបានបង្កើត គឺមាន ផ្ទុកនូវ property មួយ ដែលអោយឈោះថា $name ជាមួយនឹងតំលៃរបស់វាគឺ “Vichet” ។ អ្នកអាច access នូវ property នេះ ពីខាងក្រៅ object និងធ្វើការផ្លាស់ប្ដូរ តំលៃរបស់វាដោយ ប្រើឧទាហរណ៍ ៣៧ ។
<?
class Person >
{
var $name = “Vichet”; >
}
$obj1 = new Person(); >
$obj2 = new Person(); >
$obj1->name = “Soporn”; >
print “$obj1->name<br />”; >
print “$obj2->name<br />”; >
?>
( -> ) operator នេះអនុញ្ញាតអោយអ្នកធ្វើការ access ឬ ផ្លាស់ប្ដូរនូវតំលៃរបស់ properties នៃObject ។ យើងបានផ្ដល់នូវតំលៃ “Soporn” ទៅអោយ $name property តាមរយៈ $obj1->name ។
4. Object Methods . Method គឺជា function ដែល defined នៅក្នុង class ។ គ្រប់ object ដែលបាន instantiatedពី class តែងតែមាន method‟s ជានិច្ច យើងនឹងបន្ថែមនូវ method មួយទៅអោយ Person class នៅ
ឧទាហរណ៍ ៣៨ ។
01: <?php
02:
03: class Person
04: {
05: var $name = “Vichet”;
06:
07: function getName()
08: {
09: return “Ratana”;
10: }
11:
12: }
13:
14: $person = new Person();
15: print $person->getName();
16: // outputs “Ratana”
17: ?>
ដូចដែលអ្នកបានជួបប្រទះមកហើយអំពី method នៃឧទាហរណ៍ ៣៧ ដែលមើលទៅវាមានលក្ខណៈ ដូចគ្នាទៅនឹង function ធមμតាដែរ ។ អ្នកអាច call object method ដោយការប្រើប្រាស់និមិត្ដ សញ្ញា ( -> )។ method ដែលបាន access ទៅកាន់ member variables នៃ class ខាងលើបាន return នូវ string “Ratana” ដែលនេះមិនមែនជាការអនុវត្ដន៍ដែលត្រឹមត្រូវ នោះទេ method គួរតែ return តំលៃដែល copy ពី $name property នឹង មិនមែនជា string literal។ អ្នកក៏បានស្គាល់ រួច មកហើយអំពីការaccess a property ពីខាងក្រៅ object ប៉ុន្ដែតើត្រូវធ្វើយ៉ាងណាដើម្បី refer វានៅខាងក្នុង class ខ្លួនឯង? សូមពិនិត្យមើលឧទាហរណ៍ ៣៩ ។
5. Accessing a Property from Within a Method .
ឧទាហរណ៍ ៣៩
01: <html>
02: <head><titile>Accessing a property from within a method</title>
03: </head>
04: <body>
05: <h2>Accessing a property from within a method</h2>
06:
07: <?php
08:
09: class Person
10: {
11: var $name = “Thary”;
12:
13: function getName()
14: {
15: return $this->name;
16: }
17: }
18:
19: $person = new Person();
20: $person->name = “Bopha”;
21: print $person->getName();
22: //outputs “Bopha”
23: ?>
24: </body>
25: </html>
Class ដែលបានបង្កើតក្នុងឧទាហរណ៍ ៣៩ យើងបានប្រើប្រាស់នូវ special variable $this ដើម្បី refer ទៅកាន់ current instantiated object នៅបន្ទាត់ទី ១៥ គឺ $name ។ object ដែល refer ទៅ កាន់ ខ្លួនឯងត្រូវតែប្រើ $this variable ភ្ជាប់ជាមួយសញ្ញា ( -> ) ដោយការប្រើវិធីនេះអ្នកអាច accessរាល់ property ឬ method ដែលឋិតនៅក្នុង class ខ្លួនឯង។ អ្នកអាចគិតថាចង់អោយ object មាននូវតំលៃនៃ $name property ផ្សេងៗគ្នា ដោយអ្នកអាចធ្វើការរៀបចំនូវតំលៃរបស់ $name property ដូចដែលបានអនុវត្ដន៍នៅក្នុងឧទាហរណ៍ ៣៩ ឬ អ្នកអាចបង្កើតជាmethod សំរាប់ធ្វើការជាមួយវាដូចមានបង្ហាញក្នុង ឧទាហរណ៍ ៤០ ។
6. Changing the Value of a Property from Within a Method .
ឧទាហរណ៍ ៤០
01: <html>
02: <body>
03: <head><title>Changing the value of a property from within a method</tile>
04: </head>
05: <body>
06: <h2>Changing the value of a property from within a method</h2>
07:
08: <?php
09:
10: class Person
11: {
12: var $name = “tepy”;
13:
14: function setName( $n )
15: {
16: $this->name = $n;
17: }
18:
19: function getName()
20: {
21: return $this->name;
22: }
23: }
24:
25: $person = new Person();
26: $person->setName(“darya”);
27: print $person->getName();
28: // outputs “darya”
29:
30: ?>
31:
32: </body>
33: </html>
$name propertyនៃ object ចាប់ផ្ដើមដោយតំលៃ string “tepy”នៅបន្ទាត់ទី១២ ប៉ុន្ដែបន្ទាប់ពី setName() method ត្រូវបានហៅនៅបន្ទាត់ទី 26 តំលៃរបស់វាត្រូវបានប្ដូរទៅជា “darya” វិញ ។ Object គឺមានលទ្ធភាពផ្លាស់ប្ដូរនូវ property របស់ខ្លួនឯងបាន ហើយសំរាប់ការបញ្ជូននូវ arguments ទៅកាន់ method វិញគឺអ្នកអាចប្រើនូវវិធី ដូចដែលអ្នកអនុវត្ដន៍វាជាមួយ function ធមតាដែរ ។
7. Object Constructors . នៅឧទាហរណ៍មុនយើងបានប្រើប្រាស់ method មួយឈោះថា setName() ដើម្បីធ្វើការផ្លាស់ប្ដូរតំលៃរបស់ $name property ម្យ៉ាងវិញទៀត ការផ្ដល់នូវតំលៃ តំបូងសំរាប់ $name property នៅក្នុង Class គឺ hard-code ។var $name = “tepy”; . ប្រសិនបើយើងគិតថា $name property ផ្ទុកនូវតំលៃផ្សេងៗគ្នា រាល់ពេលដែល instance នៃ Person class យើងអាចធ្វើអោយកាន់តែប្រសើរជាងមុនដោយការ set $name property នៅពេលដែល Object ត្រូវបាន initialize។ យើងអាចប្រើប្រាស់ special function ដែលគេ អោយឈោះថា constructor ដើម្បី set properties និងបំពេញការងារផ្សេងៗ ទៅតាម តំរូវការ នៃការងារ។ constructor គឺត្រូវហៅដោយ ស្វ័យប្រវត្ដិនៅពេលដែល object ត្រូវបាន instantiated ដោយការប្រើប្រាស់ new keyword ។
អ្នកអាចបង្កើតនូវ constructor តាមវិធីសាស្ដ្រពីរយ៉ាង ទី១ គឺ constructor ដែលជា function មានឈោះដូច class ។ ឧទាហរណ៍ ៤១ នឹងបន្ថែមនូវ constructor សាមញ្ញមួយទៅអោយ Person Class ដែលកូដខាងក្រោមនេះប្រើប្រាស់បានសំរាប់តែ PHP 5 ប៉ុណ្ណោះ ។
ឧទាហរណ៍ ៤១ A Class with a Constructor
01: <html>
02: <head>
03: <title>A Class with a Construct</title>
04: </head>
05: <body>
06: <h2>A Class with a Construct</h2>
07:
08: <?php
09:
10: class Person
11: {
12: var $name;
13:
14: function Person($name=”tepy”)
15: {
16: $this->name = $name;
17: }
18: function setName( $n)
19: {
20: $this->name = $n;
21: }
22:
23: function getName()
24: {
25: return $this->name;
26: }
27: }
28:
29: $person = new Person(“darya”);
30: print $person->getName ();
31: // outputs “Darya”
32:
33: ?>
34:
35: </body>
36: </html>
Person() constructor method បន្ទាត់ទី14គឺត្រូវបានហៅដោយស្វ័យប្រវត្ដិនៅពេលដែលយើងInstantiate នូវ Person object បន្ទាត់ទី២៩ យើងក៏បានរៀបចំនូវតំលៃ default មួយជា string “tepy” ផ្ដល់ទៅអោយ parameter ផងដែរ វាគឺជាការជំនួសអោយ ខណៈដែលយើងមិនបានផ្ដល់ជា argument នៅពេលដែលយើងបង្កើត Object។ PHP 5 បានបង្ហាញនូវ syntax ថីមួយដើម្បីបង្កើត constructor methods ដោយជំនួស អោយ ការប្រើប្រាស់នូវ function ដែលមានឈោះដូច class មកជាការប្រើ special syntax ថីគឺ__construct()ដូច្នេះយើងអាចធ្វើការផ្លាស់ប្ដូរបន្ទាត់ទី៥នៃ
ឧទាហរណ៍ខាងលើ មកប្រើនូវ syntax ថដោយធ្វើការជំនួសនូវ function Person() មកប្រើ __construct() វិញ។
function __construct( $name=”tepy”) .
{
………….
}
8. Limiting Access to Object Properties .
PHP 4 មិនបានផ្ដល់នូវការ ការពារសំរាប់ object properties នោះទេ Client code អាច getឬ set objectproperties បានទៅតាមការគិតរបស់ពួកគេ។មានសំនួរសួរថាតើមានបញ្ហាអ្វីទេក្នុងការ អនុវត្ដន៍ បែបនេះ? វាមិនមានជាបញ្ហាក្នុងការប្រើ
ប្រាស់នូវ Public accessible properties នោះទេ ដែល ជាទូទៅ វាជាការអនុវត្ដន៍សំរាប់ការ access ទៅកាន់ object ដែលមានលក្ខណៈតូច។ នៅឧទាហរណ៍ខាង ក្រោមយើងនឹងបានឃើញ នូវលក្ខ័ណ្ឌមួយដែលកំណត់នូវព្រំដែននៃការ access ទៅកាន់ $name propertyរបស់ Person class ។
ឧទាហរណ៍ ៤២ Class with Public Properties
01: <?php
02: class Person
03: {
04: var $name;
05: var $pid;
06: var $personStr;
07:
08: function Person( $name=”somphy”, $pid=0 )
09: {
10: $this->name = $name;
11: $this->pid = $pid;
12: }
13:
14: function setName( $n )
15: {
16: $this->name = $n;
17: $this->$personStr=$this->name.” “.$this->pid;
18: }
19:
20: function getName ()
21: {
22: return $this->name;
23: }
24: }
25: $person = new Person(“sovan”,5233);
26: print $person->PersonStr();
27: // outputs “sovan 5233″
28: print “<br />”;
29: $person->name = “makara”;
30: ?>
PHP 5 ផ្ដល់នូវវិធីសាស្ដ្រផ្សេងដើម្បី declare នូវ properties របស់យើងដោយការជំនួសនូវ Var keyword មកប្រើនូវ keywords ថីមួយក្នុងចំណោម keyword ទាំងបី ដែលមានលក្ខណៈ ស្រដៀង ទៅនឹង programming Java យើងនឹងបង្ហាញពីការ declareនូវ property ថីនេះនៅក្នុងតារាងខាងក្រោម
a
ដូច្នេះយើងអាចផ្លាស់ប្ដូរ properties របស់យើងដែលមាននៅក្នុងឧទាហរណ៍ខាងលើដោយប្រើprivate ជំនួស ដោយ var keyword វិញ ។
ex.
private $name; .
private $pid; .
ឥឡូវនេះការព្យាយាមផ្លាស់ប្ដូរនូវតំលៃរបស់ $name property នៃ Person object នៅបន្ទាត់ទី ៣០ នឹងបង្ហាញនូវ error message ដូចខាងក្រោម ។
Fatal error: Cannot access private property Person::$name in c:\Inetpub\wwwroot\ classPrivateProperty.php on line 30 .
ដូច្នេះ Client coders ត្រូវតែប្រើប្រាស់នូវ setName() method ដើម្បីធ្វើការកែប្រែទៅលើ តំលៃ របស់ $name property ។ មានពេលណាមួយអ្នកប្រហែលជាចង់អោយ child classes អាច accsess ទៅកាន់ property ដែលនៅក្នុងពេលនោះអ្នកគួរតែប្រើនូវ protected keyword ព្រោះវា អនុញ្ញាត អោយអ្នក accesse វាពClass ដែលអ្នកបាន derived ហើយយើងនឹង បានឃើញ វានៅក្នុងផ្នែកមួយដែលនិយាយពី Inheritance ។
9. Limiting Access to Object Methods .លក្ខណៈសំខាន់នៃ object-oriented code គឺជា class ។ Object ត្រូវតែកំណត់នូវមុខងារនិង Public interface អោយបានច្បាស់លាស់ នៅពេលអ្នកបង្កើតនូវ methods ផ្សេងៗ ។បំណែកដែលមាននៅក្នុង classគឺផ្ទុកនូវមុខងារ ផ្សេងៗ សំរាប់តំ
ណើរការដូច្នេះអ្នកគួរតែលាក់នូវមុខងារទាំងនោះពីពិភពខាងក្រៅ។ សំរាប់ជាឧទាហរណ៍ខាងលើយើង គួរតែ បង្កើតនូវ method សំរាប់ $personStr property ពីព្រោះរាល់តំណើរការទាំងអស់របស់ $personStr ត្រូវបានផ្ទុកនៅក្នុង setName() method ។
function setName( $n )
{
$this->name = $n;
$this->$personStr=$this->name.” “.$this->pid;
} .
អ្នកប្រហែលជាត្រូវការនូវ method ដើម្បី reset នូវ string របស់ $personStr ដូច្នេះយើងនឹងបង្កើតនូវ
Method ថីមួយសំរាប់ ផ្ដល់តំលៃទៅអោយ $personStr property ។
function setName( $n )
{
$this->name = $n;
$this->makePersonStr( $n, $this->code );
}
function makePersonStr( $string , $code)
{
return $this->personStr = “$string $code”;
}
ឥឡូវនេះយើងនៅតែមានបញ្ហានៅឡើយជាមួយនឹង method របស់យើង ពីព្រោះ client code នៅតែអាចAccess នូវ makePersonStr() method ហើយវាអាចធ្វើឱៀ ទិន្នន័យរបស់ យើងមាន ការពិបាក គ្រប់គ្រង ។ យើងចង់អោយត្រឹមតែ object ដែលជាអ្នកបង្កើតនូវ property តែមួយគត់ ដែល មានសិទ្ធ Access មក កាន់ property នេះ នៅក្នុងជំនាន់របស់ PHP 5 យើងអាចផ្ដល់នូវ លក្ខណៈ  pravicy ទៅអោយ methods ដូចដែលយើងបានអនុវត្ដន៍ជាមួយនឹង private property ពីឧទាហរណ៍មុន ។
private function makePersonStr($string , $code) .
{
// …
}
ឥឡូវនេះ makePersonStr() function អាច access បានតែនៅក្នុង method ទាំងឡាយណាដែលឋិតក្នុង Person class ប៉ុណ្ណោះ ។
Public, protected ហើយនឹង private វាតំណើរបានតែជាមួយនឹង PHP 5 តែប៉ុណ្ណោះ ដូច្នេះប្រសិនបើអ្នកព្យាយាម
ប្រើនូវ keyword ទាំងបីនេះជាមួយ PHP 4 នោះ script របស់អ្នកនឹងត្រូវបរាជ័យទាំងស្រុង ។
10.Inheritance . ដើម្បីបង្កើត class មួយដែលអាច inherits function ពី parent class យើងប្រហែលជាត្រូវកែប្រែនូវការ declare class របស់យើងបន្ដិចបន្ដួច ។ ឧទាហរណ៍ថ្មីខាងក្រោមនេះ គឺជាការបង្ថើតនូវ Item Class ហើយនិង បង្ថើតនូវ inheriting class ដែលផ្ដល់ឈោះថា PriceItem ។
ឧទាហរណ៍ ៤៣
Creating a Class That Inherits from Another >
01: <html>
02: <body>
03: <h1>Creating Class That Inherits from Another</h1>
04: <?php
05:
06: class Item
07: {
var $name;
09:
10: function Item( $name=”item”, $code=0)
11: {
12: $this->name = $name;
13: $this->code = $code;
14: }
15:
16: function getName()
17: {
18: return $this->name;
19: }
20: }
21: class PriceItem extends Item
22: {
23: ………………………………
24: ………………………………
25: }
26: $item = new PriceItem( “Angkor”, 4545 );
27: print $item->getName ();
28: // outputs “Angkor”
29: ?>
30: </body>
31: </html>
យើងបានបង្កើតនូវ class មួយទៀតដែលមានឈោះថា PriceItem នៅបន្ទាត់ទី ២១ ។ គួរចំនាំ
ថា extends clause ដែលប្រើប្រាស់នៅខាងក្នុងការ declare class នៅបន្ទាត់ទី២១ នេះមានន័យថា PriceItem object inherits រាល់ function ទាំងអស់ដែលមាននៅក្នុង Item class ដូច្នេះ PricteItem Object និមួយៗគឺមានលទ្ធភាព access ទៅកាន់ getName() method ឬ $name property ប៉ុន្ដែ ក៏អាស្រ័យទៅលើការប្រើប្រាស់នូវ privacy settings ផងដែរ ។ ដោយសារតែយើង ពុំបានបង្កើតនូវ Constructor method សំរាប់ PriceItem class ដូច្នេះតើ $name property វាអាចធ្វើការផ្លាស់ផ្ដូរតំលៃ ពី default “item” ទៅជា “Angkor” ដោយបញ្ជូនទៅតាម PriceItem បានយ៉ាងដូចម្ដេច ? ពីព្រោះយើង
ពុំបានផ្ដល់នូវ contructor នៅក្នុង PriceItem នោះទេ ដូច្នេះប្រសិនបើ class ដែល extend ពី class ដទៃ
ទៀតមិនមាននូវ constructor method នោះ contructor ដែលជារបស់ parent class នឹងត្រូវបាន
ហៅដោយស្វ័យប្រវត្ដិនៅពេលដែល child object ចាប់ផ្ដើមបង្កីតឡើង ។
11. Overriding the Method of a Parent Class .
នៅក្នុងលក្ខណៈនៃ object-oriented កូដរបស់ child classes អាច override methods ពី Parents class នឹងអនុញ្ញតិអោយ objects អាច instantiated ពី parent class ។
The Method of a Child Class Overriding That of Its Parent >.
ឧទាហរណ៍ ៤៤
01: <?php
02: class Item
03: {
04: var $name;
05:
06: function Item( $name=”item”, $code=0)
07: {
08: $this->name = $name;
09: $this->code = $code;
10: }
11:
12: function getName()
13: {
14: return $this->name;
15: }
16: }
17:
18: class PriceItem extends Item
19: {
20: function getName()
21: {
22: return “(price).”$this->name;
23: }
24: }
25:
26: $item = new PriceItem( “widget”, 5442 );
27: print $item->getName();
28: // outputs “(price) Angkor”
29: ?>
getName() method ដែលបង្កើតនៅក្នុង PriceItem class នៅបន្ទាត់ទី ២០ ត្រូវបានហៅ
ដោយប្រើប្រាស់នូវ $name property របស់ parent class ដែលនៅចំនុចនេះយើងគួរតែធ្វើការសំរេចចិត្ដ
បង្កើតនូវ $name property ដែលមាននៅក្នុង Item class ជា private ។
class Item
{
private $name;
// …
}
ការផ្លាស់ប្ដូរនូវឧទាហរណ៍ខាងលើធ្វើអោយលទ្ធផលមានភាពប្រែប្រួលដូចខាងក្រោម-
លទ្ធផលដែលទទួលបានមុនពេលធ្វើការផ្លាស់ប្ដូរ គឺ (price) Angkor លទ្ធផលថដែល នឹងទទួល បានគឺ (price) ឥឡូវនេះ PriceItem class មិនអាច access ទៅកាន់ $name property ទៀតបានទេ ប៉ុន្ដែប្រសិនបើ Child class ត្រូវការ access ទៅកាន់ methods ឬ property នៃ ancestor classes យើគួរតែប្រើនូវ Protected keyword ជំនួសអោយ private វិញ ។
12. Calling an Overridden Method .
មានពេលខ្លះ function ដែលមាននៅក្នុង parent class អាចមានផលប្រយោជន៍សំរាប់អ្នក ដូច្នេះ
សំរាប់ Object-oriented-programmingអនុញ្ញាតិអោយអ្នក refer ទៅកាន់ parent class ដោយប្រើនូវ
parent keyword ។ ឧទាហរណ៍ខាងក្រោមនេះ getName() method ដែលឋិតនៅខាងក្នុង PriceItem
Class នឹង call នូវ method នៅក្នុង Item class ដែលបានត្រូវ override។
Calling an Overridden Method (PHP 5 Syntax)
ឧទាហរណ៍ ៤៥
01: <?php
02: class Item {
03: private $name;
04:
05: function __construct( $name=”item”, $code=0 ) {
06: $this->name = $name;
07: $this->code = $code;
08: }
09:
10: function getName() {
11: return $this->name;
12: }
13: }
14:
15: class PriceItem extends Item {
16: function getName() {
17: return “(price) “.parent::getName ();
18: }
19: }
20:
21: $item = new PriceItem (“widget”, 5442);
22: print $item->getName();
23: // outputs “(price) widget”
24:
25: ?>
យើងបានធ្វើការជាមួយនឹង getName() method នៅក្នុង PriceItem class បន្ទាត់ទី ១៧ ។
PriceItem class មិនធ្វើការផ្ទាល់ជាមួយនឹង $name property របស់ Item class នោះទេ ដូច្នេះនៅចំនុច នេះយើងអាច declare $name property ជា private ដែលមិនធ្វើអោយ មាន ផលប៉ះពាល់ជាមួយនឹង លទ្ធផលនោះទេ ហើយប្រសិនបើយើងប្រើវាជាមួយនឹង PHP 5 ទៀតនោះ វាគឺជាការអនុត្ដន៍ដ៏ល្អ ដើម្បី Lock នូវ methods និង property របស់យើង ។
13. Working with Constructors .
យើងធ្លាប់បានឃើញមកហើយថា constructor របស់ parent class នឹងត្រូវ called ដោយស្វ័យ
ប្រវត្ដិប្រសិនបើ child class មិនបានបង្កើតនូវ constructor សំរាប់ខ្លួនវានោះទេ ។ យើងនឹងបន្ថែមនូវ
Constructor method ទៅអោយ PriceItem class របស់យើងជាមួយនឹងឧទារហណ៍ខាងក្រោម ។
ឧទាហរណ៍ ៤៦ Adding a Constructor to PriceItem
01: <?php
02: class Item
03 {
04: private $name;
05: function __construct( $name=”item”, $code=0 ) {
06: $this->name = $name;
07: $this->code = $code;
08: }
09: function getName () {
10: return $this->name;
11: }
12: }
13: class PriceItem extends Item
14: {
15: private $price;
16: function __construct( $name, $code, $price ) {
17: parent::__construct( $name, $code );
18: $this->price = $price;
19: }
20:
21: function getName() {
22: return “(price) “.parent::getName ();
23: }
24: }
25:
26: $item = new PriceItem (“widget”, 5442, 5.20);
27: print $item->getName ();
28: // outputs “(price) widget”
29:
30: ?>
យើងបានបង្កើតនូវ constructor method នៅបន្ទាត់ទី១៦ ដើម្បីទទួល argument សំរាប់
$name និង $codeព្រមជាមួយនឹង argument ថីសំរាប់ price។ យើងបានប្រើប្រាស់ parent keyword
ដើម្បី call constructor របស់ Item class នៅបន្ទាត់ទី២២ មុនពេលដែលយើងធ្វើការរៀបចំតំលៃអោយ
$price property ដែលនេះបង្ហាញអោយយើងឃើញពីហេតុផលមួយសំរាប់ប្រើនូវ syntax ថីរបស់ PHP5 ដើម្បីបង្កើត contructor ។
parent::__construct( $name, $code );

មេរៀនទី៧: ​PHP- ទម្រង់ Form
នៅលើ internet (world wide web ) Form ផ្លល់នូវលទ្ធភាពេនៃការបញ្ជូននូវពត៌មានពីអ្នក ប្រើប្រាស់ពី Client ទៅកាន់ Server ។ PHPត្រូវបានរចនាឡើងដើម្បីធ្វើការជា មួយនឹងពត៌មាន ទាំងនោះនៅពេលដែល HTML forms ត្រូវបាន submit ។
1. User Input.
អ្នកប្រាកដជាចង់អោយកមវិធីរបស់អ្នកមានសកមភាព ឬ ទំនាក់ទំនងជាមួយនឹងអ្នក ប្រើប្រាស់ ក្នុង ខណៈពេលណាមួយ ។ ឧទាហរណ៍ខាក្រោមគឺជាការបង្កើតនូវ Form មួយដើម្បីទទួលនូវពត៌មានពី អ្នកប្រើប្រាស់ដូចជា first-name , last-name , date of birth , email address និង password។
<html>
<head>
<title>Registration form </title>
</head>
<body>
<CENTER>
<h2>Registration Form</h2>
<hr width=”50%”>
<form method=”GET” action=”register.php” >
<table>
<tr><td>First-Name</td>
<td><input type=”Text” name=”txtFname”></td>
</tr>
<tr><td>Last-Name</td>
<td><input type=”Text” name=”txtLname”></td>
</tr>
<tr><td>Date of Birth</td>
<td>
<Select name=”cboday”>
<option value=”01″>01</Option>
<option value=”02″>02</Option>
<option value=”03″>03</Option>
</select>
<Select name=”cbomonth”>
<option value=”01″>Jan</Option>
<option value=”02″>Feb</Option> .
<option value=”03″>Mar</Option>
</select>
<Select name=”cboyear”>
<option value=”1980″>1980</Option>
<option value=”1981″>1981</Option>
<option value=”1982″>1982</Option>
<option value=”1983″>1983</Option>
</select>
</tr>
<tr><td>E-mail</td>
<td> <input type=”text” name=”txtemail”></td>
</tr>
<tr><td align=right colspan=2> <input type=”submit” value=”Submit”>
</td>
</tr>
<tr><td>Password</td>
<td> <input type=”password” name=”txtpwd” size=22></td>
</tr>
</table>
</body> </html>
នៅបន្ទាត់ដែលយើងបានប្រើនូវ form tage<form method=”get” action=”register.php”> យើងបានប្រើនូវ get method ដែលជា attribute ដំបូងនៅក្នុង form tag ។ HTTP get method ធ្វើការបញ្ជូនទិន្នន័យពី form ទៅតាម URL ដែលធ្វើអោយទិន្ននយ័ទាំងនោះអាចបង្ហាញនៅលើ address bar របស់ browser ជាហេតុធ្វើអោយលទ្ធផលដែលបានពី form អាចត្រូវរក្សារទុកជា bookmark ។ អ្នកប្រហែលជាត្រូវប្រើ post method វិញជាការប្រសើរជាង ប្រសិនបើអ្នកចង់
ប្រើប្រាស់នូវ passwordពីព្រោះ POST ធ្វើការបញ្ជូនទិន្នន័យដែលមាននៅក្នុង form ទៅតាម body នៃ HTTP request ដូចច្នេះ ទិន្នន័យទាំងនោះមិនត្រូវបានបង្ហាញអោយឃើញជាមួយ URL ឬ ជា bookmarked នោះទេ ។ ដើម្បី processes data ពី form ដែលប្រើ get method នៅក្នុង Script អ្នកអាចប្រើជាមួយ $_GET ឬប្រសិនបើអ្នកប្រើ នូវ post method អ្នកអាចប្រើជាមួយ $_POST ឬ ប្រើ $_REQUEST អ្នកអាចប្រើបាស់បានទាំងពីរ method។
ឧទាហរណ៍ ការប្រើប្រាស់ get method នៅក្នុង script
register.php
<html>
<body>
<head>
<title>Personal Information</title>
</head>
<center>
<h2>Personal Information</h2>
<hr width=50%>
<?php
$fname = $_GET[‘txtFname’];
$lname = $_GET[‘txtLname’];
$day = $_GET[‘cboDay’];
$month = $_GET[‘cboMonth’];
$year = $_GET[‘cboYear’];
$dob = $day.-$month”.-$year”;
print “<table>”;
print “<tr>”;
print “<td><b>First-Name :</b></td>”;
print “<td> $fname </td>”;
a
print “</tr>”;
print “<tr>”;
print “<td><b>Last-Name :</b></td>”;
print “<td> $lame </td>”;
print “</tr>”;
print “</table>”;
?>
</body>
</html>
ខាងក្រោមគឺជាលទ្ធផលដែលទទួលបានបន្ទាប់ពី form ត្រូវបាន submit ដោយប្រើ get mehod ។ សូមពិនិត្យមើលនូវ address bar របស់ browser ដែលពត៌មានបញ្ជូនមកនោះ ត្រូវបានភ្ជាប់មកជាមួយនឹង url
a
ឧទាហរណ៍ ៤៩ ការប្រើប្រាស់ post method នៅក្នុង script
register.php
<html>
<body>
<?php
$fname = $_POST[‘txtFname’];
$lname = $_POST[‘txtLname’];
print “<table>”;
print “<tr>”;
print “<td><b>First-Name :</b></td>”;
print “<td> $fname </td>”;
print “</tr>”;
print “<tr>”;
print “<td><b>Last-Name :</b></td>”;
print “<td> $lame </td>”;
print “</tr>”;
print “</table>”;
?>
</body>
</html>
អ្នកនឹងបានឃើញពីភាពខុសគ្នារវាងការប្រើប្រាស់នូវ post method និង get method នៅលើ Address bar របស់ brower និមួយៗ ។ ខាងក្រោមគឺជាលទ្ធផលដែលទទួលបានបន្ទាប់ ពី form ត្រូវបាន Submit ដោយប្រើប្រាស់នូវ post method ។
a
2. Accessing Form Input with User-Defined Arrays .
ឧទាហរណ៍ ៤៩ ផ្ដល់លទ្ធភាពអោយអ្នកទទួលនូវពត៌មានពី HTML element ដែលបាន Submit នូវតំលៃមួយសំរាប់តែelement មួយប៉ុណ្ណោះដែលនេះពុំទាន់មានលក្ខណៈគ្រប់គ្រាន់នៅឡើយនោះទេប្រសិន បើអ្នកចង់ធ្វើការជាមួយនឹង multiple select ។
ឧទាហរណ៍ ៥០
01: <html>
02: <head>
03: <title>HTML Form with a ‘select’ Element</title>
04: </head>
05:
06: <body>
07: <center>
08: <h2>Multiple Select</h2>
09:
10: <hr width=”50%”>
11: <form action=”multiple.php” method=”POST”>
12: <select name=”products[]” multiple=”multiple”>
13: <option> Cocacola </option>
14: <option> Fanta </option>
15: <option> Sprite </option>
16: <option> Merinda </option>
17: <option> Pepsi </option>
18: </select><br><br>
19: <input type=”submit” value=”submit”>
20:
21: </body>
22: </html>
យើងនឹងបង្កើត script ដើម្បីស្វែងរក input ពី “products[]” form element ដែលបង្កើត នៅបន្ទាត់ ទី 12ដោយផ្ដល់ឈោះជា array indexed ហៅថា products។ products[]គឺជា select element ដែលផ្ដល់អោយនូវជំរើសសំរាប់អ្នកប្រើប្រាស់ដោយការប្រើ option element នៅបន្ទាត់ទី ១៣ ដល់ បន្ទាត់ទី ១៧យើងនឹងបង្ហាញពីលទ្ធផលដែលអ្នកប្រើប្រាស់បានជ្រើសរើសពី form ខាងលើ ដែលបង្កើតជា array នៅក្នុង ឧទាហរណ៍ ៥១
01: <html>
02: <body>
03: <head>
04: <title>Reading Input from the form multiple select</title>
05: </head>
06:
07: <?php
08:
09: if ( is_array( $_POST[‘products’] ) )
10: {
08: echo “<b>Your products choice are :</b><br/>”;
10: foreach($_POST[‘products’] as $val)
11: {
12: print “$val<br>”;
13: }
14: }
15:
16 ?>
17:
18: </body>
19: </html>
នៅបន្ទាត់ទី ០៩ នៃ ឧទាហរណ៍ ៥១ យើងធ្វើការត្រួតពិនិត្យទៅលើ $_POST[‘products’] Element ប្រសិនបើ element នេះជា array យើងនឹង loop រាល់ធាតុនិមួយៗរបស់វានៅបន្ទាត់ទី ១០ ដើម្បី បង្ហាញជាលទ្ធផលទៅកាន់ Browser ។ អ្នកក៏អាចអនុញ្ញាតិអោយអ្នកប្រើប្រាស់ ជ្រើរើសនូវជំរើសច្រើន ដោយប្រើ check boxes ដែលត្រូវផ្ដល់នូវឈោះដូចៗគ្នាសំរាប់ element និមួយៗ ហើយភ្ជាប់ជាមួយ empty brakets ។ PHP នឹង compiles នូវអ្វីដែលអ្នកប្រើប្រាស់បាន select ទៅជា array ។ យើងនឹងធ្វើការផ្លាស់ប្ដូរពីការប្រើ select element នៅឧទាហរណ៍ខាងលើ មកប្រើ check boxes វិញដូចមានក្នុងឧទាហរណ៍ ៥២។
ឧទាហរណ៍ ៥២
<html>
<head>
<title>HTML Form with a ‘select’ Element</title>
</head>
<body>
<center>
<h2>Multiple Select</h2>
<hr width=”50%”>
<form action=”multiple.php” method=”POST”>
<input type=”checkbox” name=”products[]” value=”Cocacola” />Cocacola
<input type=”checkbox” name=”products[]” value=”Fanta” />Fanta
<input type=”checkbox” name=”products[]” value=”Sprite” />Sprite
<input type=”checkbox” name=”products[]” value=”Merinda” />Merinda
<input type=”checkbox” name=”products[]” value=”Pepsi” />Pepsi
<br><br>
<input type=”submit” value=”submit”>
</body>
</html>
multiple.php
ឧទាហរណ៍ ៥២
01: <html>
02: <body>
03: <head>
04: <title>Reading Input from the form multiple select</title>
05: </head>
06:
07: <?php
08:
09: if ( is_array( $_POST[‘products’] ) )
10: {
08: echo “<b>Your products choice are :</b><br/>”;
10: foreach($_POST[‘products’] as $val)
11: {
12: print “$val<br>”;
13: }
14: }
15:
16 ?>
17:
18: </body>
19: </html>
a

from : itcambo.com