php7.0以上报错警告,7.0版本一下则正常,请教大佬
php吧
全部回复
仅看楼主
level 1
Samuel23333 楼主
Warning: Invalid argument supplied for foreach() in F:\xampp\htdocs\wp-content\themes\N1\index.php on line 19
php7.0以上报错警告,7.0版本一下则正常
感觉问题是foreach()这个在不同版本输出不一样
附上报错代码
<?php
$args = array(
'ignore_sticky_posts' => 1,
'paged' => $paged
);
if( test('notbb') ){
$pool = array();
foreach (test('notbb') as $key => $value) {//就是这行报错
if( $value ) $pool[] = $key;
}
$args['cat'] = '-'.implode($pool, ',-');
}
query_posts($args);
if ( have_posts() ) : ?>
请大佬大神解释下为啥呢
2018年03月12日 08点03分 1
level 15
先var dump一下test(notbb)这个函数的执行结果看看
2018年03月12日 08点03分 2
输出这个:string(2) " 1",大佬这是为啥呢
2018年03月12日 09点03分
level 1
Samuel23333 楼主
崩了
2018年03月12日 08点03分 3
level 1
自己下个php文档看看foreach
2018年03月12日 11点03分 4
那为什么不同php版本,运行结果不一样呢
2018年03月13日 00点03分
level 1
Samuel23333 楼主
[咦]
2018年03月13日 00点03分 5
level 8
请问一个字符串你去for,应该是有问题的
2018年03月13日 11点03分 6
可是低版本正常啊
2018年03月13日 14点03分
回复 車寒 :纠结这个问题没什么意义,就好像你说低版本可以用,如果对于你的需求这样子写没什么bug,日常没问题你就这样子写呗,顶多到时候出现了再改,php字符串在低版本的时候确实可以当做数组来用,可是升级的意义就在于修复这样子可能带来的问题
2018年03月13日 14点03分
@Sea😈☞ 多谢
2018年03月14日 00点03分
level 8
低版本类型检测不严格,我们老项目很多坑,参数不传默认值也能跑,7.1就报错
2018年03月14日 14点03分 8
level 7
7的效能上去了,同时多了不少规矩,百度一下7更新的内容即可
2018年03月14日 23点03分 9
level 1
7.0版本开始警告错误也会出现太烦了,我的是获取到的数据为空,foreach、count sum方法的参数是空也会报警告错误,只能在执行前判断一下
2021年04月22日 07点04分 10
1