1

スクリプトを使用して追加のフォーム行を作成しています。特定のテキスト フィールドの $i 番号をループします。このスクリプトを実行すると、オフセットが存在しないため未定義になります。if(isset()) 関数を使用する必要がありますが、コードにどのように配置すればよいかわかりません。誰でも助けることができますか?

for ($i=0; $i<100; $i++) {

    if ($text['length'][$i] == "") $text['length'][$i] = "0";
    if ($text['bredth'][$i] == "") $text['bredth'][$i] = "0";
    if ($text['height'][$i] == "") $text['height'][$i] = "0";
    if ($text['weight'][$i] == "") $text['weight'][$i] = "0.00";

「if」で始まるすべての行に通知が表示されます。

注意: 未定義のオフセット: 41 行目の C:\xampp\htdocs\newparcelscript.php の 1

行の作成と値の設定が一緒に実行されるため、実際には「if」ステートメントは必要ありませんでした。

for ($i=0; $i<100; $i++) {

   $text['length'][$i] = "0";
   $text['breadth'][$i] = "0";
   $text['height'][$i] = "0";
   $text['weight'][$i] = "0.00";
4

3 に答える 3

0

ここで何をしようとしているかに応じて、次のisset/emptyの組み合わせのいずれかを使用することをお勧めします

if (isset($text['length'][$i]) == false or empty($text['length'][$i]) == true)

if (isset($text['length'][$i]) == true and empty($text['length'][$i]) == true)

エラーは、存在しないインデックスに対するテストが原因である可能性があります。if ($ text ['length'] [$ i] == "")

于 2013-03-04T22:01:11.453 に答える
0

empty()ここで探しているのはテストだと思います。

for($i = 0; $i < 100; $i++)
{
    if(empty($text['length'][$i]) === TRUE) $text['length'][$i] = 0;
    ...
    ...
}
于 2013-03-04T22:05:45.243 に答える
0

この状況で、未定義のフィールドに値を挿入する必要がある場合は、 を使用しますempty()

empty()値が空の文字列の場合は TRUE を返しますが、!isset()FALSE を返します。
これについては多くの質問があります。たとえば、こちらをご覧ください

このようなもの:

for ($i=0; $i<100; $i++) {
    if (empty($text['length'][$i])) $text['length'][$i] = "0";
    if (empty($text['bredth'][$i])) $text['bredth'][$i] = "0";
    if (empty($text['height'][$i])) $text['height'][$i] = "0";
    if (empty($text['weight'][$i])) $text['weight'][$i] = "0.00";
}
于 2013-03-04T22:07:27.180 に答える