টি এল; ডিআর
আপনি এটি ব্যবহার করার চেষ্টা করছেন stringযেন এটি একটি অ্যারে, একটি কী এর সাথে থাকে string। stringএটা বুঝতে হবে না। কোডে আমরা সমস্যাটি দেখতে পাচ্ছি:
"hello"["hello"];
// PHP Warning: Illegal string offset 'hello' in php shell code on line 1
"hello"[0];
// No errors.
array("hello" => "val")["hello"];
// No errors. This is *probably* what you wanted.
গভীরতায়
আসুন সেই ত্রুটিটি দেখুন:
সতর্কতা: অবৈধ স্ট্রিং এতে 'পোর্ট' অফসেট করে ...
এটা কি বলে? এটি বলে যে আমরা স্ট্রিংয়ের 'port'জন্য অফসেট হিসাবে স্ট্রিংটি ব্যবহার করার চেষ্টা করছি । এটার মত:
$a_string = "string";
// This is ok:
echo $a_string[0]; // s
echo $a_string[1]; // t
echo $a_string[2]; // r
// ...
// !! Not good:
echo $a_string['port'];
// !! Warning: Illegal string offset 'port' in ...
এর কারণ কী?
কোনও কারণে আপনি একটি প্রত্যাশা করেছিলেন array, তবে আপনার একটি রয়েছে string। শুধু একটি মিশ্রণ। হতে পারে আপনার ভেরিয়েবল পরিবর্তন করা হয়েছিল, সম্ভবত এটি কখনও ছিল নাarray , এটি সত্যই গুরুত্বপূর্ণ নয়।
কি করা যেতে পারে?
যদি আমরা জানি আমাদের একটি হওয়া উচিত array, তবে আমাদের কাছে কেন নেই তা নির্ধারণ করার জন্য আমাদের কিছু প্রাথমিক ডিবাগিং করা উচিত array। যদি আমরা না জানি যে আমাদের একটি আছে arrayবা string, জিনিসগুলি কিছুটা জটিল হয়ে উঠবে।
আমরা কি করতে কি পরীক্ষণ সমস্ত প্রকারের হয় তা নিশ্চিত করার জন্য আমরা নোটিশ, মত বিষয়গুলিতে সতর্কবার্তা বা ত্রুটি নেই is_arrayএবং issetবা array_key_exists:
$a_string = "string";
$an_array = array('port' => 'the_port');
if (is_array($a_string) && isset($a_string['port'])) {
// No problem, we'll never get here.
echo $a_string['port'];
}
if (is_array($an_array) && isset($an_array['port'])) {
// Ok!
echo $an_array['port']; // the_port
}
if (is_array($an_array) && isset($an_array['unset_key'])) {
// No problem again, we won't enter.
echo $an_array['unset_key'];
}
// Similar, but with array_key_exists
if (is_array($an_array) && array_key_exists('port', $an_array)) {
// Ok!
echo $an_array['port']; // the_port
}
তার মাঝে কিছু সূক্ষ্ম পার্থক্য আছে issetএবং array_key_exists। উদাহরণস্বরূপ, যদি এর মান $array['key']হয় null, issetআয় false। array_key_existsঠিক যে চেক করবে, ভাল, কী বিদ্যমান ।
$memcachedConfigযে অ্যারে হয় না। শোvar_dump($memcachedConfig);