স্ট্যাকওভারফ্লো ওভার, আমি এই সমস্যাটি সর্বদা ক্রপ করে দেখছি:
- E_NOTICE? == E_DEBUG, আরও বেশি পরিশীলিত ত্রুটি সহ হ'ল isset () এবং @ এড়ানো
- যখন E_NOTICE চালু থাকে তখন $ _GET এর জন্য অপরিবর্তিত সূচকটি পরীক্ষা না করার জন্য পিএইচপি কীভাবে সেট করবেন?
- পিএইচপি বিজ্ঞপ্তি ত্রুটি লগ করা থেকে পিএইচপি কীভাবে থামাতে হয়
- আমি কীভাবে এই জাতীয় পিএইচপি 5.3 বিজ্ঞপ্তিগুলি বন্ধ করব?
এমনকি পেক্কা (যিনি প্রচুর দৃ PH় পিএইচপি পরামর্শ প্রদান করেন) ভয়ঙ্কর দৈত্যটির বিরুদ্ধে ঝাঁপিয়ে পড়েছে E_NOTICE
এবং ব্যবহার করার চেয়ে আরও ভাল সমাধানের আশা করেছে isset()
: আইসেট () এবং খালি () কোডটি কুৎসিত করুন
ব্যক্তিগতভাবে, আমি আমার অ্যাপ্লিকেশনগুলির প্রবাহ পরিচালনা করতে isset()
এবং empty()
অনেক জায়গায় ব্যবহার করি । উদাহরণ স্বরূপ:
public function do_something($optional_parameter = NULL) {
if (!empty($optional_parameter)) {
// do optional stuff with the contents of $optional_parameter
}
// do mandatory stuff
}
এমনকি এর মতো একটি সাধারণ স্নিপেট:
if (!isset($_REQUEST['form_var'])) {
// something's missing, do something about it.
}
আমার কাছে খুব যুক্তিযুক্ত মনে হচ্ছে। এটি ফোটা মতো দেখাচ্ছে না, এটি স্থির কোডের মতো দেখাচ্ছে। তবে প্রচুর বিকাশকারীরা তাদের অ্যাপ্লিকেশনগুলিকে E_NOTICE
সক্ষম করা দিয়ে আগুন জ্বালিয়ে দেয় , প্রচুর হতাশাব্যঞ্জক "অবিচ্ছিন্ন অ্যারে সূচক" বিজ্ঞপ্তিগুলি আবিষ্কার করে এবং তারপরে সংজ্ঞায়িত ভেরিয়েবলগুলি পরীক্ষা করার এবং তাদের কোডটি "লিটারে" পরীক্ষা করার প্রত্যাশায় আকৃষ্ট হয় isset()
।
আমি ধরে নিই যে অন্যান্য ভাষা জিনিসগুলি আলাদাভাবে পরিচালনা করে। অভিজ্ঞতা থেকে কথা বলতে বলতে, জাভাস্ক্রিপ্ট পিএইচপি এর মতো ভদ্র নয়। একটি অপরিবর্তিত ভেরিয়েবল সাধারণত স্ক্রিপ্টের সম্পাদন থামিয়ে দেয়। এছাড়াও, ( অনভিজ্ঞতা থেকে কথা বলা ) আমি নিশ্চিত যে সি / সি ++ এর মতো ভাষা কেবল সংকলন করতে অস্বীকার করবে।
সুতরাং, পিএইচপি ডেভস কি কেবল অলস? (আপনার সম্পর্কে কথা বলছেন না, পেক্কা, আমি জানি আপনি একটি পুরানো অ্যাপ্লিকেশনটি রিফ্যাক্টর করছেন)) বা অন্যান্য ভাষাগুলি প্রোগ্রামারকে সংজ্ঞায়িত করা হয় কিনা তা পরীক্ষা করার আগে প্রথমে এটি পরীক্ষা করার প্রয়োজনের চেয়ে অপরিজ্ঞাত পরিবর্তনগুলি পরিচালনা করে?
(আমি জানি যে অপরিবর্তিত E_NOTICE
ভেরিয়েবলগুলি ছাড়াও অন্যান্য বার্তা রয়েছে তবে সেগুলি সর্বাধিক ছাগলের কারণ হিসাবে মনে হয়)
সংযোজন
এখনও পর্যন্ত উত্তরগুলি থেকে, আমি একমাত্র এমন ব্যক্তি নই যিনি মনে করেন isset()
কোড ব্লাট নয়। সুতরাং, আমি এখন ভাবছি, অন্যান্য ভাষায় প্রোগ্রামারদের সাথে কি এই সমস্যাটি প্রতিধ্বনিত হয়? বা এটি কি একমাত্র পিএইচপি সংস্কৃতির সমস্যা?