【发布时间】:2018-10-19 03:33:15
【问题描述】:
所有,我有一个类,在顶部定义了一些变量,如下所示:
var $conditionStyle = '';
以后我可以这样设计一件东西:
$this -> conditionStyle = 'someStyle';
或者像这样的多个东西:
$this->conditionStyle[$this->styleRowsCount] = 'someStyle';
接下来我会看看 conditionStyle 是不是一个数组:
if(is_array($this-> conditionStyle) {...}
在 php 7.0 和更早的版本中,这评估得很好。对于 7.2,我必须使用 settype() 否则无法正确评估。这是 7.2 的问题还是 7.2 纠正了以前版本中的缺陷?
【问题讨论】:
-
您将
$conditionStyle初始化为字符串,然后尝试将其视为数组。这是行不通的。为什么变量不能总是数组?这在 5.6、7.0、7.1 或 7.2 中不起作用。 -
@fubar 它确实有效,只是以通常的古怪 PHP 方式。
-
@bishop,我对 5.6 - 7.0 中的测试进行了纠正。他们确实有效。但是在 7.1+ 中它不起作用并引发致命异常:3v4l.org/JRLCS
-
@fubar 是的,根据 PHP 7.1 发行说明,这确实会显式抛出异常:数组附加在字符串上 = 繁荣。但是有什么作用......这是古怪的部分......是数组通过索引分配给一个字符串。我认为OP正在做后者,否则OP会遇到异常。
标签: php arrays variable-types