php7.1+版本的变量类型坑提示

运行代码(留意$arr)

返回结果(PHP7.1之前版本代码)

PHP版本:7.0.33
array(1) { ["order_id2"]=> string(8) "222222aa" } array(1) { ["order_id2"]=> string(8) "222222aa" }

返回结果(PHP7.1+版本)

PHP版本:7.1.28
Warning: Illegal string offset 'order_id2' in /data/lab/5vbld3wy/index.php on line 8
string(1) "2" array(1) { ["order_id2"]=> string(8) "222222aa" }

结果对比

对比两个不同版本返回的结果。变量arr当成数组使用。在7.1版本之前是不会有问题的,返回结果是数组;7.1版本之后,会报一个Warning,变量的类型还是按照之前声明的字符串类型

其他代码测试

代码1
 php];

$boolVar = true;

var_dump($intVar = $stringVar);

var_dump($intVar = $arrVar);

var_dump($intVar = $boolVar);

var_dump($stringVar = $intVar);
返回结果1
PHP版本:5.6.40
Notice: Use of undefined constant php - assumed 'php' in /data/lab/5vbld3wy/index.php on line 8
string(8) "php-test" 
array(1) { ["test"]=> string(3) "php" } 
bool(true) 
bool(true)
PHP版本:7.1.28
Notice: Use of undefined constant php - assumed 'php' in /data/lab/5vbld3wy/index.php on line 8
string(8) "php-test" 
array(1) { ["test"]=> string(3) "php" } 
bool(true) 
bool(true)
PHP版本:7.3.4
Warning: Use of undefined constant php - assumed 'php' (this will throw an Error in a future version of PHP) in /data/lab/5vbld3wy/index.php on line 8
string(8) "php-test" 
array(1) { ["test"]=> string(3) "php" } 
bool(true) 
bool(true)

你可能感兴趣的:(php7.1+版本的变量类型坑提示)