報錯如下:
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聲明的變量才能在局部、全局中互相使用、