未初始化的字符串偏移php

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未初始化的字符串偏移php相关的知识,希望对你有一定的参考价值。

我在php上编写自己的计算器。

我的代码有问题,因为我不知道我想在字符串中读得太远。所以,如果有人可以开导我..

我得到的确切错误是:

PHP注意:未初始化的字符串偏移量:第76行/home/salim/Bureau/web/piscine_php/d01/ex11/do_op_2.php中的4

以下是代码:

function decoupe ($argv)
{
global $nbr1;
global $nbr2;
global $sign;
$string = NULL;
$string = trim($argv[1], " 	");
echo $string;
echo "
";
$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的主要内容,如果未能解决你的问题,请参考以下文章

注意:未定义的偏移量:0 in

简单函数()中的php未定义偏移量

数组的问题:注意:未定义的偏移量:0

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP