উত্তর:
সতর্কতার কারণ যা কিছু ঘটছে তা আপনার সত্যই ঠিক করা উচিত তবে আপনি ত্রুটিগুলির সাথে দৃশ্যমানতা নিয়ন্ত্রণ করতে পারেন error_reporting()
। সতর্কতা বার্তাগুলি এড়িয়ে যেতে আপনি এমন কিছু ব্যবহার করতে পারেন:
error_reporting(E_ERROR | E_PARSE);
E_ALL ^ E_WARNING
সতর্কতা ছাড়াও সমস্ত ত্রুটি প্রতিবেদন সক্ষম করা, এটির পক্ষে যুক্তি দেওয়া ভাল পছন্দ বলে মনে হয় error_reporting
।
সমস্ত ত্রুটি বার্তাগুলি দমন করতে আপনি আপনার ফাংশন কলের সামনে একটি @ রাখতে পারেন ।
@yourFunctionHere();
dns_get_record
সতর্কতা নিক্ষেপ করবে। আপনার কোডটি সতর্কতার জন্য ক্ষতিপূরণ দিতে পারে তবে এটি তাদের এখনও ছুঁড়ে দেয়। ত্রুটির প্রতিবেদন বন্ধ করে দেওয়া প্রোডাকশন সার্ভারে কাজ করে তবে ডভেল সার্ভারে নয়। আপনি যদি এক্সএমএল সামগ্রী তৈরি করে থাকেন তবে সতর্কতাটি ব্রাউজারটিকে রেন্ডার না করার কারণ কারণ সার্ভারটি সতর্কতার কারণে ক্ষতিকারক এক্সএমএল প্রেরণ করছে। কখনও কখনও আপনি এটি ডেভেলতে চান তবে কোনও অস্থায়ী ডিএনএস লিকআপ ব্যর্থতার কারণে এমন কিছু নয় যা আপনি ইতিমধ্যে ক্ষতিপূরণ করেছেন।
আপনি যদি ত্রুটি ব্যবহারের পাশাপাশি সতর্কতা প্রদর্শন করতে না চান
// Turn off all error reporting
error_reporting(0);
সতর্কতা বার্তাটি গোপন করতে কোরিয় পিএইচপি তে ফাইল বা স্বতন্ত্র ফাইল অন্তর্ভুক্ত ত্রুটি_বর্ধনা (0) সেট করুন।
ওয়ার্ডপ্রেস হাইড সতর্কতা এবং নোটিশগুলি wp-config.php ফাইলে নিম্নলিখিত কোড যুক্ত করে
ini_set('log_errors','On');
ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
প্রশ্নের ঠিক উত্তর দেওয়া হচ্ছে না, তবে আমি মনে করি এটি কিছু পরিস্থিতিতে একটি আরও ভাল আপস:
তৃতীয় পক্ষের লাইব্রেরিতে একটি মুদ্রণ () বিবৃতি হিসাবে আমার একটি সতর্কতা বার্তা ছিল। আমি কারণটি ঠিক কী তা জানতে পেরেছিলাম - একটি অস্থায়ী কাজ যখন তৃতীয় পক্ষ তাদের কোড স্থির করে। আমি সম্মত হলাম যে সতর্কতাগুলি দমন করা উচিত নয়, তবে আমি ক্লায়েন্টের কাছে সতর্কতা বার্তাটি পর্দায় উপস্থিত হয়ে আমার কাজটি প্রদর্শন করতে পারিনি। আমার সমাধান:
printf('<div style="display:none">');
...Third-party stuff here...
printf('</div>');
সতর্কতা এখনও পৃষ্ঠার উত্সে ছিল আমার কাছে অনুস্মারক হিসাবে, তবে ক্লায়েন্টের কাছে অদৃশ্য।
ob_start()
এবং ob_end_clean()
পরিবর্তে। এইভাবে স্টাফ এমনকি ব্রাউজারে প্রেরণ করা হবে না (যা এটি এখানে করে)।
আমি মনে করি যে আরও ভাল সমাধান .htaccess এর কনফিগারেশন সেভাবে আপনাকে আবেদনের কোড পরিবর্তন করতে হবে না। এখানে অ্যাপাচি 2-এর নির্দেশনা রয়েছে
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_value docref_root 0
php_value docref_ext 0
আপনি ত্রুটি_অবস্থাপনা ব্যবহার করে সতর্কতা দমন করতে পারেন তবে আপনার স্ক্রিপ্টটি প্রথম স্থানে ফিক্স করার আরও ভাল উপায়।
কীভাবে যদি আপনি না জানেন তবে আপনার প্রশ্নটি সম্পাদনা করুন এবং আমাদের প্রশ্নে রেখাটি প্রদর্শন করুন এবং সতর্কতাটি প্রদর্শিত হবে।
ত্রুটি নিয়ন্ত্রণ অপারেটরের সাথে ইতিমধ্যে উত্তর রয়েছে তবে এর ব্যাখ্যাটির অভাব রয়েছে। আপনি @
প্রতিটি অভিব্যক্তি সহ অপারেটর ব্যবহার করতে পারেন এবং এটি ত্রুটিগুলি লুকিয়ে রাখে (মারাত্মক ত্রুটিগুলি বাদে)।
@$test['test']; //PHP Notice: Undefined variable: test
@(14/0); // PHP Warning: Division by zero
//This is not working. You can't hide Fatal Errors this way.
@customFuntion(); // PHP Fatal error: Uncaught Error: Call to undefined function customFuntion()
ডিবাগিংয়ের জন্য এটি দ্রুত এবং নিখুঁত পদ্ধতি। তবে আপনার এটিকে কখনও উত্পাদনতে ব্যবহার করা বা স্থায়ীভাবে আপনার স্থানীয় সংস্করণে অন্তর্ভুক্ত করা উচিত নয়। এটি আপনাকে অনেক অপ্রয়োজনীয় জ্বালা দেবে।
পরিবর্তে আপনার বিবেচনা করা উচিত:
1. গৃহীত উত্তরে উল্লিখিত হিসাবে সেটিংস রিপোর্ট করার সময় ত্রুটি।
error_reporting(E_ERROR | E_PARSE);
বা পিএইচপি আইএনআই সেটিংস থেকে
ini_set('display_errors','Off');
২. ব্যতিক্রম ধরা
try {
$var->method();
} catch (Error $e) {
// Handle error
echo $e->getMessage();
}