標籤:int test 解決 array nmp ring 字元 數組 lan
報錯如下:Warning: Illegal string offset ‘阿根廷‘ in F:\wnmp\www\test.php on line 24Warning: Illegal string offset ‘中國‘ in F:\wnmp\www\test.php on line 24Warning: 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();2:直接不聲明、也沒有任何問題、因為在PHP中、全域變數不能在局部變數中使用、局部變數不能在全域變數中使用只有GLOBALS聲明的變數才能在局部、全域中互相使用、
PHP7.1 報錯 Warning Illegal string offset