报错如下:
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();
2:直接不声明、也没有任何问题、
因为在PHP中、全局变量不能在局部变量中使用、局部变量不能在全局变量中使用
只有GLOBALS声明的变量才能在局部、全局中互相使用、

PHP7.1 报错 Warning Illegal string offset的更多相关文章

  1. thinkphp5的Illegal string offset 'id'错误

    thinkphp5的Illegal string offset 'id'错误 问题 解答 数组同名了,一个html页面传进来两个cateres的数组,所以在找id的时候不知道找这两个里面的哪一个 第一 ...

  2. php报错Array to string conversion 解决方案,动态输出数据库列名称

    php报错Array to string conversion 解决方案,动态输出数据库列名称 问题:在Windows php5.3环境下使用:<?php echo $row->$keys ...

  3. (TODO:)下载图片,报错:warning: could not load any Objective-C class information from the dyld shared cache. This will significantly reduce the quality of type information available.

    想使用NSInvocationOperation下载图片,然而并没有下载下来, NSData为nil, 还有报错:(打断点就报错) warning: could not load any Object ...

  4. ecstore在MySQL5.7下维护报错WARNING:512 @ ALTER IGNORE TABLE

    ecstore在MySQL5.7下维护报错WARNING:512 @ ALTER IGNORE TABLE 打开 /app/base/lib/application/dbtable.php , 替换A ...

  5. Docker报错 WARNING: IPv4 forwarding is disabled. Networking will not work.

    问题:创建容器的时候报错WARNING: IPv4 forwarding is disabled. Networking will not work. # docker run -it -p 3000 ...

  6. c:param 标签后不要写 注释 。否则报错 Encountered illegal body of tag "c:import" tag, given its attributes

    c:param 标签后不要写 注释 .否则报错  Encountered illegal body of tag "c:import" tag, given its attribu ...

  7. 【mysql报错】MySQL5.7.27报错“[Warning] Using a password on the command line interface can be insecure.”

    MySQL5.7.27报错“[Warning] Using a password on the command line interface can be insecure.”在命令行使用密码不安全警 ...

  8. MVC模式下unity配置,报错“No connection string named '**Context' could be found in the application config file”

     写在前面: 第一次配置时好好的,后来第二次改到MVC模式,把依赖注入写成字典的单例模式时,由于新建的ORM(数据库映射模型EF),怎么弄都不用,一直报错"No connection str ...

  9. scp执行报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

    linux环境执行scp时会遇到报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!,如下 [root@subsname home]# scp AAA. ...

随机推荐

  1. Android技术之-------电脑获取手机截图

    入吾QQ群183435019(学习 交流+唠嗑) 其实这个相当简单 应该会点ADB命令的人都会吧 一 下载一个ADB 如果你是学Android编程的,,Android SDK应该有吧,在Android ...

  2. Zabbix实战-简易教程--宏变量(Macro)

    一.概述 Zabbix支持许多在多种情况下使用的宏.宏是一个变量,由如下特殊语法标识:MACRO 有效地使用宏可以节省时间,并使Zabbix变地更加高效. 在一个的典型用途中,宏可以用于模板中.因此, ...

  3. [linux] C语言Linux系统编程-TCP通信的11种状态

    三次握手由client主动发出SYN请求, 此时client处于SYN_SENT状态(第一次握手)当server收到之后会由LISTEN转变为SYN_REVD状态, 并回复client, client ...

  4. mac上安装mongodb数据库教程

    1.官网下载压缩包,并解压到当地任一目录.(我的是Documents/develop/mongodb) 2.在mongodb下新建data文件夹,在data下新建db文件夹.(bin和data文件夹在 ...

  5. 【JavaScript运算符与表达式】

    一.表达式 1.原始表达式:2.14,"test",true/false,null--复合表达式:10*20-- 2.数组.对象的初始化表达式:new Array(1,2),[1, ...

  6. 在虚拟机中安装metasploit官方攻防模拟器

    首先我们要在windwos下载安装perl环境.下载地址: http://pan.baidu.com/s/1i3GLKAp 然后我们安装 点击next 我同意,next next next,然后他会安 ...

  7. Java A+B(个人模版)

    JavaA+B: import java.io.*; import java.util.*; import java.math.BigInteger; import java.util.Scanner ...

  8. [bzoj4410] [Usaco2016 Feb]Fence in

    根据ccz181078大爷的题解可得(QAQ,每次肯定是断掉连续一行||一列的栅栏... 贪心地想,一个格子与外面联通,显然是先把短的边界断掉(就像mst那样 但是比较蛋疼的是,因为我们每次断的时候, ...

  9. 51nod1649- 齐头并进-最短路

    1649 齐头并进 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 在一个叫奥斯汀的城市,有n个小镇(从1到n编号),这些小镇通过 ...

  10. VS2012 TFS解决离职后代码遗留未迁入问题

    第一步: 在命令行中输入 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE 第二步: 根据用户查找该用户下workspac ...