未初始化的字符串偏移量 php
Uninitialized string offset php
我正在 PHP 上编写自己的计算器。
我的代码有问题,因为我不知道我试图在字符串中读到什么地方。所以如果有人能启发我..
我得到的确切错误是:
PHP Notice: Uninitialized string offset: 4 in /home/salim/Bureau/web/piscine_php/d01/ex11/do_op_2.php on line 76
下面是代码:
function decoupe ($argv)
{
global $nbr1;
global $nbr2;
global $sign;
$string = NULL;
$string = trim($argv[1], " \t");
echo $string;
echo "\n";
$x = 0;
while($string[$x])
{
if (is_numeric($string[0]) == false)
error_msg();
if (is_numeric($string[$x]) && $string[$x + 1])
{
while (is_numeric($string[$x]))
{
$nbr1 .= $string[$x];
$x++;
}
}
if (is_thisoperator(substr($string, $x)))
{
$sign .= $string[$x];
$x++;
}
else
{
error_msg();
}
if ($string[$x + 1] && is_numeric($string[$x]))
{
while (is_numeric($string[$x]))
{
$nbr2 .= $string[$x];
$x++;
}
}
else
{
error_msg();
}
}
不要使用 $string[$x]
来测试 $x
是否是字符串中的有效索引。当 $x
位于字符串之外时,它会打印一条警告。请改用 $x < strlen($string)
。所以改变:
while ($string[$x])
到
while ($x < strlen($string))
并改变
if ($string[$x + 1] && is_numeric($string[$x]))
到
if ($x + 1 < strlen($string) && is_numeric($string[$x]))
我正在 PHP 上编写自己的计算器。
我的代码有问题,因为我不知道我试图在字符串中读到什么地方。所以如果有人能启发我..
我得到的确切错误是:
PHP Notice: Uninitialized string offset: 4 in /home/salim/Bureau/web/piscine_php/d01/ex11/do_op_2.php on line 76
下面是代码:
function decoupe ($argv)
{
global $nbr1;
global $nbr2;
global $sign;
$string = NULL;
$string = trim($argv[1], " \t");
echo $string;
echo "\n";
$x = 0;
while($string[$x])
{
if (is_numeric($string[0]) == false)
error_msg();
if (is_numeric($string[$x]) && $string[$x + 1])
{
while (is_numeric($string[$x]))
{
$nbr1 .= $string[$x];
$x++;
}
}
if (is_thisoperator(substr($string, $x)))
{
$sign .= $string[$x];
$x++;
}
else
{
error_msg();
}
if ($string[$x + 1] && is_numeric($string[$x]))
{
while (is_numeric($string[$x]))
{
$nbr2 .= $string[$x];
$x++;
}
}
else
{
error_msg();
}
}
不要使用 $string[$x]
来测试 $x
是否是字符串中的有效索引。当 $x
位于字符串之外时,它会打印一条警告。请改用 $x < strlen($string)
。所以改变:
while ($string[$x])
到
while ($x < strlen($string))
并改变
if ($string[$x + 1] && is_numeric($string[$x]))
到
if ($x + 1 < strlen($string) && is_numeric($string[$x]))