4
回答
PHP7.0升级到7.1出现了数组不能对数组赋值,求解答
注册华为云得mate10,2.9折抢先购!>>>   

a.php

<?php

$seo['index']['title'] = '网站标题-{网站名字}';

$seo['index']['key'] = '网站关键字-{网站名字}';

$seo['index']['desc'] = '网站描述-{网站名字}';

 

b.php

<?php

$pageType = 'index';

$pageSeo['title'] = $seo[$pageType]['title'];

$pageSeo['key'] = $seo[$pageType]['key'];

$pageSeo['desc'] = $seo[$pageType]['desc'];

 

print_r($pageSeo);

 

=======结果========

php5-7都是正常的

结果7.1+版本只打印出来    

 

然后我修改代码:

***********************

$title = $seo[$pageType]['title'];

$key = $seo[$pageType]['key'];

$desc = $seo[$pageType]['desc'];

$pageSeo['title'] = $title;

$pageSeo['key'] = $key;

$pageSeo['desc'] = $desc;

print_r($pageSeo);

 

这次在php7.1+版本正常了,请问这种是情况?

还是php7.1+的新特性已经移除了数组对数组的赋值??

 

 

举报
未梦
发帖于11个月前 4回/722阅

首先,请先写正确的代码,你的代码里面,缺少里很多分号,其次,数组没有定义,我给一个稍微修改正确的代码:

$seo = $pageSeo = array(); // 定义数组,每一条语句不要忘记有分号结尾。


$seo['index']['title'] = '网站标题-{网站名字}';
$seo['index']['key'] = '网站关键字-{网站名字}';
$seo['index']['desc'] = '网站描述-{网站名字}';
 

$pageType = 'index';
$pageSeo['title'] = $seo[$pageType]['title'];
$pageSeo['key'] = $seo[$pageType]['key'];
$pageSeo['desc'] = $seo[$pageType]['desc'];
 
print_r($pageSeo);

这个代码在所有的PHP版本里都能正常运行。

你可以测试看看。

至于你说php7.1不能正常运行,我想可能的原因是,php7.1报告里错误,而你没有在php.ini文件里打开错误显示,display_errors=on; 所以出现页面空白了。

 

你可以自行去这个网站测试php版本:http://sandbox.onlinephpfunctions.com/  

 

--- 共有 2 条评论 ---
hell0cat 回复 @未梦 : 不用纠结PHP本身了,PHP7.1肯定没问题,考虑一下你的配置文件、文件编码 等问题。 11个月前 回复
未梦首先感谢回答,这些是我临时在发帖时候打的,不是复制的代码,忘记加分号了。 就如你修改后的代码。 我的代码在php7.1 只输出 一个大括号 { 其他版本正常。 11个月前 回复
顶部