在PHP中以数组形式访问布尔变量返回NULL
在与我的一位工作朋友讨论时,我们发现了PHP的一些奇怪之处。让我们获取以下代码:在PHP中以数组形式访问布尔变量返回NULL,php,arrays,boolean,Php,Arrays,Boolean,在与我的一位工作朋友讨论时,我们发现了PHP的一些奇怪之处。让我们获取以下代码: <?php $leo = false; $retorno = $leo[0]; var_dump($retorno); 因为您试图访问的不是字符串,而是布尔值,所以它返回NULL。自以下日期起: 注意: 使用[]或{}访问其他类型的变量(不包括实现适当接口的数组或对象)会自动返回NULL。 由于您试图访问的不是字符串,而是布尔值,因此它返回NULL。自以下日期起: 注意: 使用[]或{}访问其他类型的变量
<?php
$leo = false;
$retorno = $leo[0];
var_dump($retorno);
因为您试图访问的不是字符串,而是布尔值,所以它返回NULL
。自以下日期起:
注意:
使用[]或{}访问其他类型的变量(不包括实现适当接口的数组或对象)会自动返回NULL。
由于您试图访问的不是字符串,而是布尔值,因此它返回NULL
。自以下日期起:
注意:
使用[]或{}访问其他类型的变量(不包括实现适当接口的数组或对象)会自动返回NULL。
它是NULL
,因为$leo[0]
不是$leo
。您没有将bool
或string
分配给$leo[0]
,因此它是空的,并最终导致NULL
如果你要说:
$retorno = $leo;
或
然后您将得到您期望的结果。它是NULL
,因为$leo[0]
不是$leo
。您没有将bool
或string
分配给$leo[0]
,因此它是空的,并最终导致NULL
$leo = false;
$retorno = array($leo);
var_dump($retorno[0]);
如果你要说:
$retorno = $leo;
或
然后你会得到你期望的结果
$leo = false;
$retorno = array($leo);
var_dump($retorno[0]);
试试这个
在PHP5.4之前,如果您尝试获取字符串索引,它会将字符串转换为0并获取单词的第一个字母,即$s='asdf';echo$s['f']代码>。现在它会给你一个警告,说偏移量不存在。那么这个问题我们在哪里?在PHP 5.4之前,如果你试图获取字符串的字符串索引,它会将字符串转换为0并获取单词的第一个字母,即$s='asdf';echo$s['f']代码>。现在它会给你一个警告,说偏移量不存在。那么这个问题我们在哪里呢?