0

さて、私は他の人々のコードからPHPを学ぼうとしています。コードの一部はおそらく古くなっていますが、学校に行く時間ができるまで、基本事項を確認するのに役立ちます。私の問題は未定義変数エラーです。現時点では、エラーを非表示にする方法しかわかりませんが、非表示にするつもりはありません。問題が解決されたことを意味しない場合、それはあなたがそれを無視する方法を見つけたことを意味します。何らかの理由でエラーが発生します。

エラーが発生している行。

<form method=post
      <?php echo "action=\"registration.php?f=".(!$flag)."&amp;s=".$sort."\""; ?> 
      enctype="multipart/form-data" >

次に、これはページ上の問題です。

Notice: Undefined variable: flag in C:\wamp\www\info\registration.php on line 236

同一のものは他にもありますが、ここでこれを修正する方法を学ぶことができれば、他の問題の解決策にもなると思います. 追加情報が必要な場合はお知らせください。前もって感謝します。細かすぎてごめんなさい。目の前で放送しようとしている問題を無視したくないだけです。

4

3 に答える 3

3

他の人のコードを読んで学ぶことは良いことです-もっと多くの人がそれをしてくれることを願っています;)

PHPは「スクリプト言語」です。C#、C ++、Javaなどのより「強く型付けされた」言語とは異なり、「スクリプト言語」では、いつでも好きなときに変数を使い始めることができます。

便利で柔軟性があります...しかし、初期化される前に変数の 使用を開始すると、問題が発生する可能性があります。

于 2012-05-19T16:45:33.163 に答える
3

あなたの質問に答えるに$flagは、この場合に何を意味するかを調べ、それに応じて設定してください。$flag = true;ブール値のように見えるので、フォームのレンダリングの前に使用するのと同じくらい簡単かもしれません。しかし、これをコピーした場合も同様に、必要ないかもしれません。コードから削除できますか?

次に、私が推奨するスタイルの規則について説明します。あなたの例actionでは、タグの属性をエコーし​​ていますform-その属性が変数に依存しており、使用できない場合にのみそれを行います。

このようにする方がきれいだと思います:

<form method="post"
      action="registration.php?f=<?php echo !$flag ?>&amp;s=<?php echo $sort ?>"
      enctype="multipart/form-data"
>

タグを複数の行にまたがっていることに気付くでしょう。繰り返しますが、これはオプションですが、完全に有効なマークアップを作成し、エディターでの水平スクロールを回避するのに役立ちます。また、各属性が独自の行を取得するため、各属性の開始位置をより簡単に確認できます。

于 2012-05-19T16:53:47.810 に答える
1

まだ設定されていない変数(この場合$flag)を参照しています。

基本的$flagにはまだ値が割り当てられていないため、存在しません。与えたスニペットが設定される前に、コードのどこかにあります$flagか?

于 2012-05-19T16:45:46.947 に答える