اگر در حال مطالعه این مقاله هستید احتمالا به تازگی اقدام به ارتقا نسخه PHP به 7.1 یا بالاتر کرده اید. طبیعتا با ارتقا نسخه های PHP برخی از توابع قدیمی یا منسوخ شده حذف شده و دیگر غیر قابل پشتیبانی هستند.
بنابراین چنانچه در نرم افزارها، پلاگین ها و اپلیکیشن های مورد استفاده از آن توابع استفاده شده باشد با خطایی چون [] operator not supported for strings مواجه می شوید.
در ادامه به 3 مصداق این خطا در جوملا و وردپرس و نحوه رفع مشکل پرداخته ایم، پس در ادامه با ما همراه باشید...
نحوه رفع خطا در جوملا
ابتدا لازم است متوجه شویم که خطای operator not supported for strings در کدامیک از بخش های جوملا وجود دارد. بنابراین فایل configuration.php را باز کرده و مقدار public $debug را برابر 1 تنظیم کنید.
حال با مراجعه مجدد به آدرس وبسایت، خطای Fatal error: Uncaught Error با جزییات مشاهده خواهد شد:
Fatal error: Uncaught Error: [] operator not supported for strings /home/USER/public_html/components/com_layer_slider/base/includes/slider_markup_init.php:98
در مثال ما مشکل مربوط به یکی از پلاگین های مورد استفاده در جوملا در خط 98 فایل slider_markup_init.php می باشد. در این خط، کد زیر درج شده است:
$data[] = '<script type="text/javascript">' . NL;
حال کافیست این کد را با استفاده از یکی از روش های زیر تغییر دهید:
روش اول: کد بالا را با اضافه کردن $data[] به شکل زیر تغییر دهید:
$data = []; $data[] = '<script type="text/javascript">' . NL;
روش دوم: چنانچه روش اول جواب نداد، حال کد را به شکل زیر تغییر دهید:
$data = array(); $data[] = '<script type="text/javascript">' . NL;
نحوه رفع خطا در قالب Betheme در وردپرس
از جمله مصادیق دیگر خطای Fatal error: Uncaught Error در هنگام استفاده از یکی از مجموعه قالب های Betheme ساخت شرکت Muffin group در خط 150 فایل front.php واقع در مسیر زیر است:
wp-content/themes/betheme/functions/builder/front.php
برای رفع مشکل کافیست در خط 150 کدها را به شکل زیر تغییر دهید:
// $section_style = ''; $section_style = [];
نحوه رفع خطا در افزونه Revolution Slider در وردپرس
چنانچه از نسخه های قدیمی افزونه Revolution Slider استفاده می کنید با ارتقا نسخه PHP به 7.1 و بالاتر با خطای زیر مواجه می شوید:
Uncaught Error: [] operator not supported for strings in wp-content\plugins\revslider\includes\framework\base-admin.class.php:69
برای رفع خطا کافیست به خط 69 فایل base-admin.class.php واقع در مسیر فوق مراجعه و یک خط قبل از آن ایجاد کرده و در نهایت کد را به شکل زیر تغییر دهید:
self::$arrMetaBoxes = []; # add this line to create the variable as an array
self::$arrMetaBoxes[] = $box;
کار تمام شد!