PHP உடன் பணிபுரியும் போது, '' வரையறுக்கப்படாத குறியீடு 'பிழை. இல்லாத ஒரு குறியீட்டைப் பயன்படுத்தி ஒரு வரிசை உறுப்பு அல்லது மாறியை அணுக முயற்சிக்கும் போது இந்த பிழை ஏற்படுகிறது, இது எதிர்பாராத முடிவுகள் அல்லது நிரல் செயலிழப்புக்கு வழிவகுக்கும்.
இந்த கட்டுரையில், அது என்ன என்பதை விரிவாக விளக்குவோம். வரையறுக்கப்படாத குறியீடு ” பிழை, அதற்கான சாத்தியமான காரணங்கள் மற்றும் அதை எவ்வாறு சரிசெய்வது.
PHP இல் வரையறுக்கப்படாத குறியீட்டு பிழை
ஒரு ' வரையறுக்கப்படாத குறியீடு ” ஏற்கனவே குறிப்பிட்டுள்ளபடி, ஒரு பயனர் ஒரு குறியீட்டில் வரையறுக்கப்படாத குறியீட்டைப் பயன்படுத்தி அணிவரிசையில் உள்ள உறுப்பு அல்லது மாறியை அணுக முயற்சிக்கும்போது ஏற்படும் பிழை.
PHP இல் வரையறுக்கப்படாத குறியீட்டு பிழைக்கான காரணங்கள்
இந்த பிழைக்கு பல சாத்தியமான காரணங்கள் உள்ளன:
- தவறாக எழுதப்பட்ட குறியீட்டு பெயர்
- இல்லாத குறியீட்டை அணுகுதல்
- குறியீட்டு மதிப்பு அமைக்கப்படவில்லை
- வரிசை விசை இல்லை
PHP இல் வரையறுக்கப்படாத குறியீட்டு பிழையை எவ்வாறு சரிசெய்வது
PHP இல் இந்த பிழையை சரிசெய்ய, பயனர்கள் பின்வரும் மூன்று முறைகளைப் பயன்படுத்தலாம்:
1: isset() செயல்பாடு
தி isset() செயல்பாடு என்பது PHP இல் உள்ளமைக்கப்பட்ட செயல்பாடாகும், இது ஒரு வரிசையில் மாறி அல்லது குறியீட்டின் இருப்பை சரிபார்க்க உங்களை அனுமதிக்கிறது. அது திரும்புகிறது உண்மை ஒரு மாறி அல்லது குறியீட்டு அணிவரிசையில் இருந்தால், மற்றொரு வழக்கில் தவறானது. நீங்கள் சரிசெய்ய விரும்பினால் வரையறுக்கப்படாத குறியீட்டு பிழை PHP இல், ஒரு நிரலில் இருக்கும் மாறியை சரிபார்க்கும் உதாரணமாக பின்வரும் குறியீட்டைக் கருத்தில் கொண்டு இந்தச் செயல்பாட்டைப் பயன்படுத்தலாம்.
$மைரே = வரிசை ( 'குறியீடு1' => 'மதிப்பு1' , 'இண்டெக்ஸ்2' => 'மதிப்பு2' , 'இண்டெக்ஸ்3' => 'மதிப்பு3' ) ;
என்றால் ( isset ( $மைரே [ 'குறியீடு' ] ) ) {
எதிரொலி $மைரே [ 'குறியீடு' ] ;
} வேறு {
எதிரொலி 'வரிசையில் அட்டவணை காணப்படவில்லை' ;
}
?>
மேலே உள்ள குறியீடு பயன்படுத்துகிறது isset() என்பதைச் சரிபார்க்கும் செயல்பாடு ' குறியீட்டு 'விசை உள்ளது $myarray வரிசை. அவ்வாறு செய்தால், அதன் மதிப்பைப் பயன்படுத்தி நாம் பாதுகாப்பாக அணுகலாம் $myarray[‘index’] பிழையை உருவாக்காமல். இல்லையெனில், நமக்கு ஒரு செய்தி கிடைக்கும் குறியீடு காணப்படவில்லை வரிசையில். மேலே இருந்து குறியீடு குறியீட்டு விசை கிடைக்கவில்லை 'குறியீடு முடிவை வெளியிடும் வரிசையில் அட்டவணை இல்லை ”.
2: array_key_exists() செயல்பாடு
இது PHP இல் உள்ள மற்றொரு பயனுள்ள செயல்பாடாகும், இது ஒரு வரிசையில் உள்ள குறியீட்டை சரிபார்க்க உங்களை அனுமதிக்கிறது. ஒரு வரிசையில் ஒரு குறியீட்டு இருந்தால் சரி என்பதை வழங்குவதன் மூலம் இது மேலே உள்ள செயல்பாட்டைப் போலவே செயல்படுகிறது. இல்லையெனில், இது குறியீட்டைக் கண்டறியாத பிழையை வெளியிடுகிறது.
கீழே கொடுக்கப்பட்டுள்ள உதாரணம் PHP இல் இந்த செயல்பாட்டின் செயல்பாட்டைக் காட்டுகிறது.
$மைரே = வரிசை ( 'குறியீடு1' => 'மதிப்பு1' , 'இண்டெக்ஸ்2' => 'மதிப்பு2' , 'இண்டெக்ஸ்3' => 'மதிப்பு3' ) ;
என்றால் ( வரிசை_விசை உள்ளது ( 'குறியீடு' , $மைரே ) ) {
எதிரொலி $மைரே [ 'குறியீடு' ] ;
} வேறு {
எதிரொலி 'வரிசையில் அட்டவணை காணப்படவில்லை' ;
}
?>
மேலே உள்ள குறியீடு பயன்படுத்துகிறது array_key_exist() என்பதைச் சரிபார்க்கும் செயல்பாடு ' குறியீட்டு 'விசை உள்ளது $myarray வரிசை. அவ்வாறு செய்தால், அதன் மதிப்பைப் பயன்படுத்தி நாம் பாதுகாப்பாக அணுகலாம் $myarray[‘index’] பிழையை உருவாக்காமல்.
மேலே உள்ள குறியீட்டிலிருந்து குறியீட்டு விசை கிடைக்கவில்லை 'குறியீடு முடிவை வெளியிடும்' வரிசையில் அட்டவணை இல்லை ”.
3: Null Coalescing Operator ஐப் பயன்படுத்துதல்
தி null coalescing operator (??) உங்கள் PHP குறியீட்டில் உள்ள வரையறுக்கப்படாத குறியீட்டுப் பிழையைச் சரிசெய்ய இது உதவும் என்பதால், ஒரு வரிசையில் ஒரு குறியீட்டு இருப்பை சரிபார்க்க மற்றொரு பயனுள்ள முறையாகும். எப்படி பயன்படுத்துவது என்பதை அறிய கீழே கொடுக்கப்பட்டுள்ள குறியீட்டைக் கவனியுங்கள் PHP இல் null coalescing ஆபரேட்டர்.
$மைரே = வரிசை ( 'குறியீடு1' => 'மதிப்பு1' , 'இண்டெக்ஸ்2' => 'மதிப்பு2' , 'இண்டெக்ஸ்3' => 'மதிப்பு3' ) ;
எதிரொலி $மைரே [ 'குறியீடு' ] ?? 'வரிசையில் அட்டவணை காணப்படவில்லை' ;
?>
மேலே உள்ள குறியீடு பயன்படுத்துகிறது null coalescing operator (??) இல் உள்ள குறியீட்டு விசையை சரிபார்க்க $myarray வரிசை . அவ்வாறு செய்தால், கன்சோலில் மதிப்பைப் பெறலாம். இருப்பினும், குறியீடு இல்லை என்றால், அது ' வரிசையில் அட்டவணை இல்லை ” கன்சோலில் வெளியீடு.
முடிவுரை
' வரையறுக்கப்படாத குறியீடு ” என்பது PHP இல் இல்லாத ஒரு வரிசை குறியீட்டை அணுக முயற்சிக்கும்போது ஏற்படும் பொதுவான பிழை. தவறாக எழுதப்பட்ட குறியீட்டு பெயர், இல்லாத குறியீட்டு அல்லது அமைக்கப்படாத குறியீட்டு மதிப்பு இந்த வகை பிழையை ஏற்படுத்தலாம். அதை சரிசெய்ய, ஒருவர் பயன்படுத்தலாம் isset(), array_key_exist() , அல்லது null coalescing operator (??). இந்த முறைகளைப் பற்றி விரிவாக அறிய மேலே கொடுக்கப்பட்ட வழிகாட்டுதல்களைப் பின்பற்றவும்.