PHP7.1 報錯 Warning Illegal string offset

報錯以下:
Warning: Illegal string offset '阿根廷' in F:\wnmp\www\test.php on line 24
Warning: Illegal string offset '中國' in F:\wnmp\www\test.php on line 24
Warning: Illegal string offset '印尼' in F:\wnmp\www\test.php on line 24
 
緣由:
原始代碼以下
<?php
$area = ''; // 重點在這、聲明 $area 爲字符串
$lang = 'zh';
$data_area = array(
'AR' => array( 'zh' => '阿根廷','en' => 'Argentina' ),
'CN' => array( 'zh' => '中國西部','en' => 'China West' ),
'ID' => array( 'zh' => '印尼','en' => 'Indonesia' )
);
foreach( $data_area as $k => $v ){
$area[$k] = $v[$lang];
}
// 而後這裏循環、寫入數據、爲 $area 爲數組
$area = array_flip( $area );
print_r( $area );
 
PHP7.1之後、對變量的類型要求比較嚴格
本來聲明爲 字符串、可是循環的時候寫入數據的時候要轉爲數組類型的、
在 <=PHP7.0 的版本中是均可以使用的、可是在PHP7.1中報錯
 
解決:
1:聲明爲數組類型 $area = array() 或者 $area = [];
2:直接不聲明、也沒有任何問題、
由於在PHP中、全局變量不能在局部變量中使用、局部變量不能在全局變量中使用
只有GLOBALS聲明的變量才能在局部、全局中互相使用、
相關文章
相關標籤/搜索