ত্রুটি বার্তাটি দুর্ভাগ্যজনক কারণে যে পিএইচপি সুস্পষ্টভাবে একই নামের ধ্রুব স্ট্রিং হিসাবে একটি অজানা টোকেনকে ঘোষণা করবে।
এটি, এটি এটি ব্যাখ্যা করার চেষ্টা করছে (অনুপস্থিত উদ্ধৃতি চিহ্নগুলি নোট করুন):
$_POST[department]
পিএইচপি-তে এটি বৈধ সিনট্যাক্স হওয়ার একমাত্র বৈধ উপায় হ'ল যদি এর আগে ধ্রুবক department
সংজ্ঞা দেওয়া হত । অত্যন্ত দুঃখের বিষয়, এই মুহুর্তে মারাত্মক ত্রুটির সাথে মারা যাওয়ার পরিবর্তে এটি এই নোটিশটি জারি করে এবং কাজ করে যেমন একটি ধ্রুবককে একই নাম এবং মান দিয়ে সংজ্ঞায়িত করা হয়েছিল:
// Implicit declaration of constant called department with value 'department'
define('department', 'department');
আপনি এই ত্রুটি বার্তাটি পেতে বিভিন্ন উপায়ে থাকতে পারেন তবে তাদের সকলেরই মূল কারণ রয়েছে - একটি টোকেন যা একটি ধ্রুবক হতে পারে।
স্ট্রিংসের অনুপস্থিত উদ্ধৃতি: $my_array[bad_key]
আপনার ক্ষেত্রে সমস্যাটি এটিই and কারণ আপনার কাছে স্ট্রিং অ্যারে কীগুলি পাওয়া গেছে যা উদ্ধৃত হয়নি। স্ট্রিং কীগুলি ঠিক করা বাগটি ঠিক করবে:
পরিবর্তন:
$department = mysql_real_escape_string($_POST[department]);
...(etc)...
প্রতি:
$department = mysql_real_escape_string($_POST['department']);
...(etc)...
পরিবর্তনশীল অনুপস্থিত ডলার সাইন: var_without_dollar
আপনি এই ত্রুটি বার্তাটি দেখতে পাবার আর একটি কারণ হ'ল যদি আপনি $
কোনও ভেরিয়েবল বা $this->
কোনও সদস্যের কাছ থেকে বাদ দেন। উদাহরণস্বরূপ, নিম্নলিখিত যে কোনও একটি অনুরূপ ত্রুটি বার্তা সৃষ্টি করতে পারে:
my_local; // should be $my_local
my_member; // should be $this->my_member
চলক নামে অবৈধ অক্ষর: $bad-variable-name
অনুরূপ তবে আরও সূক্ষ্ম ইস্যুটির ফলস্বরূপ যদি আপনি একটি চলক নামে একটি নিষ্ক্রিয় চরিত্রটি ব্যবহার করার চেষ্টা করেন - -
আন্ডারস্কোরের পরিবর্তে হাইফেন ( ) _
একটি সাধারণ ক্ষেত্রে হয়ে থাকে।
উদাহরণস্বরূপ, এটি ঠিক আছে, যেহেতু আন্ডারস্কোর পরিবর্তনশীল নামের অনুমতি দেওয়া হয় :
if (123 === $my_var) {
do_something();
}
তবে এটি নয়:
if (123 === $my-var) {
do_something();
}
এটি এর মতোই ব্যাখ্যা করা হবে:
if (123 === $my - var) { // variable $my minus constant 'var'
do_something();
}
শ্রেণীর ক্ষেত্র উল্লেখ না করে একটি শ্রেণির ধ্রুবককে উল্লেখ করা
কোনও ক্লাস ধ্রুবককে উল্লেখ করার জন্য আপনাকে ক্লাসের ক্ষেত্রটি নির্দিষ্ট করতে হবে ::
, আপনি যদি এই মিস করেন তবে পিএইচপি ভাববে আপনি কোনও বিশ্বব্যাপী কথা বলছেন define()
।
উদাহরণ:
class MyClass {
const MY_CONST = 123;
public function my_method() {
return self::MY_CONST; // This is fine
}
public function my_method() {
return MyClass::MY_CONST; // This is fine
}
public function my_bad_method() {
return MY_CONST; // BUG - need to specify class scope
}
}
একটি ধ্রুবক ব্যবহার করে যা পিএইচপি-র এই সংস্করণে সংজ্ঞায়িত হয় না বা ইনস্টল না হওয়া কোনও এক্সটেনশনে সংজ্ঞায়িত হয়
কিছু সিস্টেম-সংজ্ঞায়িত ধ্রুবক রয়েছে যা কেবলমাত্র পিএইচপি এর নতুন সংস্করণগুলিতে বিদ্যমান, উদাহরণস্বরূপ মোড বিকল্প ধ্রুবক round()
যেমন PHP_ROUND_HALF_DOWN
কেবলমাত্র পিএইচপি 5.3 বা তার পরে বিদ্যমান থাকে।
সুতরাং আপনি যদি এই বৈশিষ্ট্যটি পিএইচপি 5.2 এ ব্যবহার করার চেষ্টা করেন, বলুন:
$rounded = round($my_var, 0, PHP_ROUND_HALF_DOWN);
আপনি এই ত্রুটি বার্তাটি পাবেন:
অপরিজ্ঞাত ধ্রুবক ব্যবহার PHP_ROUND_HALF_DOWN - ধরে নেওয়া 'PHP_ROUND_HALF_DOWN' সতর্কতা (2): রাউন্ডের জন্য ভুল পরামিতি গণনা ()