我刚刚安装了PHP 7.1,现在我看到了这个错误:
PHP Warning: Cannot assign an empty string to a string offset in /postfixadmin/variables.inc.php on line 31
第31行:
$fDomains[0] = "";
如何在PHP 7.1中清除$ fDomains [0]?
答案 0 :(得分:2)
这是因为您想在第一个元素处取消设置字符串。只需使用substr($fDomains, 1);
答案 1 :(得分:0)
根据bug #71572,不允许分配空字符串。然后使用:
substr(fDomains,1); //like Kris Roofe wrote;
或使用这样的解决方案:
$fDomainsTmp = $fDomains;
for($x = 0 ; $x < length($fDomains); $x ++){
if(condition character allow in string){
$fDomainsTmp .= $fDomains[$x];
}
}
$fDomains = $fDomainsTmp;
答案 2 :(得分:0)
($fDomains = "";)
或($fDomains[0] = "";)
是错误的,但如果没有看到其他代码,则无法说哪个错误。
如果$fDomains
是字符串,则作业$fDomains=''
将清空其内容。如果$fDomains
是一个数组,则应将其初始化为$fDomains=array()
而不是$fDomains=""
,$fDomains[0]=''
是清除字符串值的正确方法数组中的第一个元素。
实际上,您在评论中说明的两个作业(在本答案的顶部复制)都是错误的 - 在括号表达式的末尾不应该是分号(;
) ,除非你有一个PHP需要解释的字符串(例如,嵌入变量或转义序列),你应该使用单引号而不是双引号 - ="";
应该 =''
强>
答案 3 :(得分:0)
此消息“ PHP警告:无法为字符串偏移量分配空字符串”的原因是:
我的$fDomains
变量是作为字符串而不是作为数组启动的。