មេរៀនទី៤: អនុគមន៍ 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


Declaring a Function

function bigsum()
{
$sum=0;
for ($i=1; $i<=10; $i++ )
{
$sum+=$i; .
$str= $str.”$i+”;
}
echo substr($str,0,-1).”=$sum”;
}
bigsum();
?>



លទ្ធផលដែលបង្ហាញនៅលើ browser គឺជា string នៃតួរអក្សរ 1+2+3+…………+10 = 55ឧទាហរណ៍ខាងលើនេះគឺ ជាការបង្កើតនូវ function មួយឈេμាះថា bigsum()ដែលជា function មិនមាននូវ Arguments នោះទេ ។សំរាប់ឧទាហរណ៍ទី ២០ យើងនឹងបង្កើត function ដែលប្រើ ប្រាស់ argument ។
ឧទាហរណ៍ ២០


 Declaring a Function



 
 function bigsum($count)
 {
 $sum=0;
 for($i=1; $i<=$count; $i++ )
 {
 $sum+=$i;
 $str= $str.”$i+”;
 }
 echo substr($str,0,-1).”=$sum”;
 }

 bigsum(10);

 ?>



1.2.1 Returning Values from User-Defined Functions នៅឧទាហរណ៍ខាងលើយើងទទួលបាននូវលទ្ធផលជា string នៅលើ browser ដោយការប្រើប្រាស់ bigsum() function ។ function របស់អ្ន្នកអាចធ្វើការផ្លាស់ប្ដូរតំលៃដែលអ្នកបានផ្ដល់អោយឬ មាន ពេលខ្លះអ្នកនឹងចង់អោយ function ផ្ដល់នូវតំលៃថីអោយអ្នក បន្ទាប់ពីអ្នកបានផ្ដល់តំលៃទៅឱៀវា។
Function មួយអាចទទួលបានតំលៃដោយការប្រើប្រាស់ នូវ returnstatement ជាមួយនឹងតំលៃដែលត្រូវបញ្ចូនត្រលប់
ទៅកាន់ function។ return បញ្ឈប់ប្រតិបត្ដិការរបស់ function ហើយ បញ្ជូនតំលៃត្រលប់ ទៅវិញនៅពេលដែល function
ត្រូវបានហៅមកប្រើ ។ខាងក្រោមគឺជាឧទាហរណ៍នៃការបង្កើត function ដែល return តំលៃពី ផលបូលចំនួនពីរតំលៃ ។
ឧទាហរណ៍ ២១


A Function That Returns a Value



 
 function addNums($num1,$num2)
 {
 $result = $num1 + $num2;
 return $result;
 }
print addNums(3,5);

?>


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 បាននោះទេ។
ឧទាហរណ៍ ២២ៈ

 Local Variable Unavailable Outside a Function




 
 function test()
 {
 $testvariable = “this is a test variable”;
}
 print “test variable: $testvariable
”;

 ?>



អ្នកនឹងបានឃើញនូវលទ្ធផលនៃឧទាហរណ៍ខាងលើ ដែលតំលៃរបស់ variable $testvariable មិនត្រូវបានបង្ហាញនោះទេ ពីព្រោះពុំមាន variable ណាមួយត្រូវបានបានបង្កើតនៅខាងក្រៅ functiontest() នោះទេ ។ គួរចំណាំថា ការយក variable
ដែលមិនមាន មកប្រើប្រាស់គឺមិនមានភាព error ឡើយ។ម្យ៉ាងវិញទៀត variable ដែលប្រកាសនៅខាងក្រៅ function
គឺមិនអាចយកមកប្រើក្នុង function ដោយស្វ័យប្រវត្ដិនោះទេ ។
2.1 Accessing Variables with the global Statement .
មានពេលខ្លះអ្នកប្រហែលជាត្រូវការប្រើប្រាស់ variable នៅក្នុង function របស់អ្នកដោយពុំតំរូវ អោយមានការបញ្ជូនតំលៃតាម argument នោះទេ ។ ខាងក្រោមគឺជាឧទាហរណ៍ដែលប្រើប្រាស់នូវ
global statement ដើម្បីប្រើប្រាស់នូវ variable ដែលប្រកាសខាងក្រៅ function ។
ឧទាហរណ៍ ២៣ៈ


 The global Statement




 $lottery=42;

 function lotteryToday()
 {
 global $lottery;
 print “Lottery today is $lottery
”;
 }

 lotteryToday();
 ?>


នៅបន្ទាត់ទី ១៣ នៃឧទាហរណ៍ទី២៣ យើងបានប្រើប្រាស់នូវ 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;