未初始化的字符串偏移量:使用大括号引用单个字符串字符时为 -1
Uninitialized string offset: -1 when referencing single string character with curly braces
我有这个代码:
$len = strlen($string);
if ($string{$len-1} == '-') {
// Do stuff...
}
但是我收到以下通知错误:
Uninitialized string offset: -1
当我 var_dump($len-1)
我得到的值:
int 3
当我 var_dump($string)
我得到:
string 'bobo' (length=4)
那么谁能告诉我为什么这会导致 NOTICE 错误?
为防止通知,请在 if
语句中添加附加条件:
$len = strlen($string);
if ($len > 0 && $string{$len-1} == '-')
// Do stuff...
}
或使用substr
函数:
if (substr($string, -1) == '-') {
// Do stuff...
}
$len = strlen($string);
if(isset($string{$len-1})){
if ($string{$len-1} == '-') {
// Do stuff...
}
}
我有这个代码:
$len = strlen($string);
if ($string{$len-1} == '-') {
// Do stuff...
}
但是我收到以下通知错误:
Uninitialized string offset: -1
当我 var_dump($len-1)
我得到的值:
int 3
当我 var_dump($string)
我得到:
string 'bobo' (length=4)
那么谁能告诉我为什么这会导致 NOTICE 错误?
为防止通知,请在 if
语句中添加附加条件:
$len = strlen($string);
if ($len > 0 && $string{$len-1} == '-')
// Do stuff...
}
或使用substr
函数:
if (substr($string, -1) == '-') {
// Do stuff...
}
$len = strlen($string);
if(isset($string{$len-1})){
if ($string{$len-1} == '-') {
// Do stuff...
}
}