ব্যক্তিগতভাবে, আমি মনে করি যে কোডটি এখনও খুব খারাপ because কারণ এটি কী করছে আপনি মন্তব্য করছেন না। এটি বৈধতার জন্য এর ইনপুটগুলিও পরীক্ষা করে না, এটি খুব ভঙ্গুর করে তোলে।
আমি আরও অনুভব করি যেহেতু 95% (বা তার বেশি) ইওল ব্যবহার সক্রিয়ভাবে বিপজ্জনক, তাই এটি অন্যান্য ক্ষেত্রে যে সামান্য সম্ভাব্য সময় সাশ্রয় করতে পারে তা ব্যবহারের খারাপ অভ্যাসে লিপ্ত হওয়ার পক্ষে উপযুক্ত নয়। এছাড়াও, আপনাকে পরে নিজের মিনিটগুলি ব্যাখ্যা করতে হবে কেন আপনার alশালের ব্যবহার ভাল এবং সেগুলি খারাপ।
এবং অবশ্যই আপনার পিএইচপি পার্লের মতো দেখতে শেষ হবে;)
ইভাল (), ("ইনজেকশন আক্রমণ" দৃশ্য হিসাবে) নিয়ে দুটি মূল সমস্যা রয়েছে:
1) এটি ক্ষতি হতে পারে 2) এটি কেবল ক্রাশ হতে পারে
এবং প্রযুক্তিগত তুলনায় আরও বেশি সামাজিক-একটি:
3) এটি অন্য কোথাও শর্টকাট হিসাবে অনুচিতভাবে এটি ব্যবহার করতে লোকেদের প্ররোচিত করবে
প্রথম ক্ষেত্রে, আপনি ঝুঁকিটি চালাচ্ছেন (স্পষ্টতই, আপনি যখন কোনও পরিচিত স্ট্রিংটি প্রকাশ করছেন না) স্বেচ্ছাসেবক কোড কার্যকর করার জন্য। যদিও আপনার ইনপুটগুলি আপনার মনে হয় ততটা জানা বা ঠিক মতো নাও হতে পারে।
আরও সম্ভবত (এই ক্ষেত্রে) আপনি কেবল ক্র্যাশ হয়ে যাবেন এবং আপনার স্ট্রিং একটি অকৃত্রিম অস্পষ্ট ত্রুটি বার্তা দিয়ে শেষ হবে। আইএমএইচও, সমস্ত কোড যথাসম্ভব ঝরঝরে করে ব্যর্থ হওয়া উচিত, ব্যর্থ হওয়া যাতে এটির ব্যতিক্রম হয় (ত্রুটির সর্বাধিক নিয়ন্ত্রণযোগ্য রূপ হিসাবে) throw
আমি প্রস্তাব দিয়েছি যে, এই উদাহরণে, আপনি আচরণে কোডিংয়ের চেয়ে কাকতালীয়ভাবে কোডিং করছেন। হ্যাঁ, এসকিউএল এনাম বিবৃতি (এবং আপনি কি নিশ্চিত যে ফিল্ডের এনাম? - আপনি কি ডাটাবেসের সঠিক সংস্করণটির ডান টেবিলের ডান ক্ষেত্রটি কল করেছিলেন? এটি কি সত্যই উত্তর দিয়েছে?) পিএইচপি-তে অ্যারে ডিক্লেয়ারেশন সিনট্যাক্সের মতো দেখা যায়, তবে আমি পরামর্শ দিচ্ছি আপনি যা করতে চান তা হ'ল ইনপুট থেকে আউটপুট পর্যন্ত সংক্ষিপ্ততম পথটি খুঁজে না পাওয়া, বরং নির্দিষ্ট কাজটি মোকাবেলা করুন:
- আপনার একটি এনাম আছে তা শনাক্ত করুন
- অভ্যন্তরীণ তালিকাটি বের করুন
- তালিকার মানগুলি আনপ্যাক করুন
যা আপনার বিকল্পটি মোটামুটি ঠিক তেমনই করে তবে স্পষ্টতা এবং সুরক্ষার জন্য আমি এর কয়েকটি এবং এর চারপাশের মন্তব্যগুলিকে আবদ্ধ করব (উদাহরণস্বরূপ, যদি প্রথম ম্যাচটি মেলে না, ব্যতিক্রম ছুঁড়ে ফেলুন বা নাল ফলাফল নির্ধারণ করুন)।
পালিয়ে যাওয়া কমা বা উদ্ধৃতিগুলি নিয়ে এখনও কিছু সম্ভাব্য সমস্যা রয়েছে এবং আপনার সম্ভবত ডেটা আনপ্যাক করা উচিত তারপর এটি ডি-কোট করা উচিত, তবে এটি কোডের পরিবর্তে ডেটা হিসাবে ডেটা হিসাবে বিবেচনা করে।
প্রাক-রূপান্তরটির সাথে আপনার সবচেয়ে খারাপ ফলাফল সম্ভবত $ ফলাফল = নাল হতে পারে, ইওল সংস্করণটির সাথে সবচেয়ে খারাপটি অজানা, তবে কমপক্ষে একটি ক্রাশ।
$result = array(); preg_replace_callback('#^enum\s*\(\s*\'|\'\s*\)\s*$#', function($m) use($result) { $result[] = $m[1]; }, $type);