ដែន​កំណត់​នៃ​អថេរ

នៅ​ក្នុង​ភាសា PHP ដែន​កំណត់​ត្រូវ​ចែក​ចេញ​ជា​ ៣ ប្រភេទ​គឺ ដែន​កំណត់​ក្រៅ (global scope) ដែន​កំណត់​ក្នុង (local scope) និង ដែន​កំណត់​ថេរ (static scope) ។

ដែន​កំណត់​ក្រៅ គឺ​ជា​ទីកន្លែង​នៅ​ខាង​ក្រៅ​ក្បួន ហើយ​បណ្តា​អថេរ​ទាំងឡាយ​ណា​ដែល​ត្រូវ​បាន​បង្កើត​ឡើង​នៅ​ក្នុង​ដែន​កំណត់​ក្រៅ នឹង​មិន​អាច​ត្រូវ​យក​ទៅ​ប្រើ​នៅ​ក្នុង​ក្បួន​ដែល​ជា​ដែន​កំណត់​ក្នុង​បាន​ឡើយ​។ ចំណែក​ឯ​ដែន​កំណត់​ថេរ វិញ គឺ​ជា​ទីកន្លែង​មួយ​ទៀត​នៅ​ក្នុង​ក្បួន ដែល​អថេរ​ទាំងឡាយ​ត្រូវ​បាន​បង្កើត​ឡើង​ដោយ​មាន​ពាក្យ​ពិសេស​ថា static នៅ​ពី​មុខ​។

មួយវិញទៀត ​អថេរ​ស្ថិត​ក្នុង​ដែន​កំណត់​ថេរ នឹង​មិន​ត្រូវ​លុប​ចេញ​វិញ​ដោយ​ស្វ័យប្រវវត្តិ​ឡើយ នៅ​ពេល​ដែល​ក្បួន​ត្រូវ​យក​ទៅ​ប្រើ​រួច​ហើយ​នោះ​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ៖



នៅ​ក្នុង​កម្មវិធី​ខាង​លើ​នេះ យើង​ឃើញ​ថា​អថេរ​ឈ្មោះ $width នៅ​ក្នុង​ដែនកំណត់​ក្រៅ​និង​អថេរ​ឈ្មោះ $width នៅ​ក្នុង​ដែន​កំណត់​ក្នុង គឺ​ជា​អថេរ​ពីរ​ខុស​គ្នា ទោះ​បី​ជា​វា​មាន​ឈ្មោះ​ដូច​គ្នា​ក៏​ដោយ​ គឺ​ដូច​គ្នា​នឹង​អថេរ​នៅ​ក្នុង​ភាសា JS ដែរ​។ តែ​ភាព​ខុស​គ្នា​រវាង​ភាសា​ទាំងពីរ​នេះ​គឺ​ថា នៅ​ក្នុង​ភាសា PHP អថេរ​នៅ​ក្នុង​ដែនកំណត់​ក្រៅ មិន​អាច​ត្រូវ​បាន​យក​ទៅ​ប្រើ​នៅ​ក្នុង​ដែន​កំណត់​ក្នុង​បាន​ឡើយ​។

ហើយ​បើ​និយាយ​ពី​រឿង​ដែន​កំណត់​ថេរ​នៅ​ក្នុង​ភាសា PHP វិញ គឺ​ជា​រឿង​ថ្មី​មួយ សំរាប់​អ្នក​មក​ពី​ភាសា JS ។ ជាក់ស្តែង អថេរ​ឈ្មោះ $time នៅ​ក្នុង​កម្មវិធី​ខាង​លើ​ មិន​ត្រូវ​បាន​លុប​ចេញ​ពី​សតិ​របស់​កំព្យូទ័រ​ឡើយ នៅ​ពេល​ដែល​ក្បួន​ឈ្មោះ myFunc1 ត្រូវ​បាន​យក​ទៅ​ប្រើ​ម្តង​រួច​ហើយ ព្រោះ​អថេរ​នេះ​ត្រូវ​បាន​បង្កើត​ឡើង​និង​ទុក​នៅ​ក្នុង​ដែនកំណត់​ថេរ​នៅ​ក្នុង​ក្បួន​នេះ​។ ហើយ​នៅ​ពេល​ដែល​ក្បួន myFunc1 ត្រូវ​យក​ទៅ​ប្រើ​ជា​លើក​ទី ២ តំលៃ​លេខ​ចាស់​របស់​អថេរ $time ដែល​ជា​លទ្ធផល​ពី​ការយក​ក្បួន myFunc1 មក​ប្រើ​នៅ​លើក​ទី ១ ត្រូវ​បាន​យក​មក​ប្រើ​។

ក៏ប៉ុន្តែ ទោះ​ជា​យ៉ាងណា​ក៏ដោយ ក៏​ភាសា PHP ផ្តល់​មធ្យោបាយ​អោយ​យើង​មួយ​ចំនួន ក្នុង​ការយក​អថេរ​នៅ​ក្នុង​ដែនកំណត់​ក្រៅ មក​ប្រើ​នៅ​ក្នុង​ដែន​កំណត់​ក្នុង​បាន​ដែរ​។ មធ្យោបាយ​ទាំងនោះ​គឺ​ការប្រើប្រាស់​បញ្ជា​ global និង​សំណុំ​មាន​ស្រាប់ $GLOBALS ។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ៖