На PHP7 мы знаем, что переменная должна быть инициализирована с ее типом, отличным от того, что мы сделали на php5, чтобы тип был изменен в соответствии с установленным значением.
Если мы тестируем этот код
<?php
/* EAMPLE A */
$tLisTim="";
$i=0;
$tLisTim[$i]=100;
$i=$i+1;
$tLisTim[$i]=200;
var_dump("A");
var_dump($tLisTim);
/* EAMPLE B */
$tLisTim=[];
$i=0;
$tLisTim[$i]=100;
$i=$i+1;
$tLisTim[$i]=200;
var_dump("B");
var_dump($tLisTim);
?>
мы получим следующие результаты:
PHP 5.6
string 'A' (length=1)
array (size=2)
0 => int 100
1 => int 200
string 'B' (length=1)
array (size=2)
0 => int 100
1 => int 200
PHP 7.1
string 'A' (length=1)
string '12' (length=2)
string 'B' (length=1)
array (size=2)
0 => int 100
1 => int 200
Проблема в том, что в PHP7 нет предупреждений, помогающих нам правильно перенести все эти различия.
Как я могу обнаружитькогда мы пытаемся использовать переменную с неправильным типом?
Спасибо,