0

私は以下のコードを持っています。

注意: 初期化されていない文字列オフセット: C:\xampp\htdocs\website\dev\lib\player.class.php の 110 行目の 9 注意: 初期化されていない文字列オフセット: C:\xampp\htdocs\website\dev\lib\ の 10 110 行目の player.class.php 通知: 初期化されていない文字列オフセット: C:\xampp\htdocs\website\dev\lib\player.class.php の 11 行 110 通知: 初期化されていない文字列オフセット: C:\xampp\ の 12 htdocs\website\dev\lib\player.class.php 行 110 通知: 初期化されていない文字列オフセット: 13 in C:\xampp\htdocs\website\dev\lib\player.class.php 行 110

110行目は

$this->formattedname .= "<span style='color:" . $colour . "'>" . $this->username[$i] . "</span>";

foreachで

誰かが私が間違っていることを知っていますか? これらのエラーを修正する解決策が見つかりません.. :(

if ($this->admin == 1) {
            $colours = explode("~", $this->gradientcolours);
            $gradient = new ColourGradient(array(0 => $colours['0'], (strlen($this->username) - 1) => $colours['1']));
            $this->formattedname .= ($this->admin == 1) ? "<b><i><a style='text-decoration: none;' title='" . $this->title . "' href='/profile/" . $this->id . "'>" : "<b><a title='" . $this->title . "' href='/profile/" . $this->id . "'>";
            $this->formattedname2 = ($this->admin == 1) ? "<b><i><a style='text-decoration: none;' title='" . $this->title . "' href='/profile/" . $this->id . "'>" : "<b><a title='" . $this->title . "' href='/profile/" . $this->id . "'>";



                    foreach($gradient as $i => $colour) {
                $this->formattedname .= "<span style='color:" . $colour . "'>" . $this->username[$i] . "</span>";

            }

            $this->formattedname .= ($this->admin == 1) ? "</a></i></b>" : "</a></b>";

            $this->formattedname2 .= ($this->admin == 1) ? "</a></i></b>" : "</a></b>";

        }
4

4 に答える 4

0

これはエラーではなく、通知です。エラーまたは警告は、何か間違ったことをした/間違いを犯したことを意味します。通知は、何かが改善される可能性があるという単なるヒントです。

つまり、存在しないキーを使用しているということです。

$array[0] = 0;
$array[1] = 1;
$array[2] = 2;

echo $array[0]; // no notice, it exists
echo $array[2]; // no notice, it exists
echo $array[9]; // the notice will fire, because key 9 doesn't exist

あなたのコードでは、どの行が 110 かわかりません$this->username[$i]が、問題は推測です。ユーザー 9 から 13 は存在しません

$this->usernameが配列ではなく文字列の場合、N 番目の文字が返されます。

$string = "example";
echo $string[1]; // will return X, an array starts counting at 0 (zero-index-based)
echo $string[50]; // blank echo, and the notice because character 50 doesn't exist
于 2013-09-29T11:04:20.027 に答える
0

文字列に連結を使用する場合.=、文字列は次のように初期化する必要があります

$this->formattedname = "";

そして連結後

于 2013-09-29T11:05:24.140 に答える
0

問題は次の行にあります。

$this->username[$i].

ユーザー名は 5 文字で、$i は 12 文字です。適切な条件を使用して検証してください。

于 2013-09-29T11:05:55.747 に答える