簡體   English   中英

PHP 7.2 is_array不是正確的

[英]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'

在3v4l.org上在線查看。

PHP 7.1發行說明中 很少提及此更改:

字符串不再支持空索引運算符
將空索引運算符應用於字符串(例如$ str [] = $ x)會引發致命錯誤,而不是無聲地轉換為數組。

進行此更改的PR也有您注意到的副作用,正如其他人在該頁面的“注釋”部分中所述。

您應該首先將變量初始化為數組,以在所有版本中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM