[英]PHP 7.2 is_array not eval to true
所有,我有一類在頂部定義了一些變量的類,如下所示:
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糾正了先前版本中的缺陷?
PHP 7.1更改了此代碼的行為:
$x = '';
$x[3] = 'foo';
在<7.1中, $x
為:
array (
3 => 'foo',
)
而在> = 7.1中,它是:
string ' f'
PHP 7.1發行說明中 很少提及此更改:
字符串不再支持空索引運算符
將空索引運算符應用於字符串(例如$ str [] = $ x)會引發致命錯誤,而不是無聲地轉換為數組。
進行此更改的PR也有您注意到的副作用,正如其他人在該頁面的“注釋”部分中所述。
您應該首先將變量初始化為數組,以在所有版本中使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.