ホームページ >バックエンド開発 >PHPチュートリアル >PHP を学習中に構文の問題に遭遇し、それを理解するのに丸 1 日かかりました。

PHP を学習中に構文の問題に遭遇し、それを理解するのに丸 1 日かかりました。

WBOY
WBOYオリジナル
2016-06-23 13:42:51974ブラウズ

問題はここのPHPコード部分にあり、正常な判断ができません。

            <?php             if(sysname("webstate") == "Y"){//这里是sysname函数			  echo '<option value="Y">开启中</option>';              echo '<option value="N">停止中</option>';				}else{			  echo '<option value="N">停止中</option>';			  echo '<option value="Y">开启中</option>';			   }			?>


関数部分:
//网站基本信息,根据字段获取内容function sysname($field){ $sql="select * from system"; $query=mysql_query($sql); $rs=mysql_fetch_array($query); echo $rs["$field"];}


データベースの webstate フィールドは char 型を使用します。フィールドは関数を使用して通常に出力できますが、判定はできません。


助けて。


ディスカッションへの返信(解決策)

function sysname($field){   $sql="select * from system";   $query=mysql_query($sql);   $rs=mysql_fetch_array($query);   retrun $rs[$field]; //这里是返回}

function sysname($field){   $sql="select * from system";   $query=mysql_query($sql);   $rs=mysql_fetch_array($query);   retrun $rs[$field]; //这里是返回}



呼び出して直接表示したい場合はどう書けばよいでしょうか?

function sysname($field){   $sql="select * from system";   $query=mysql_query($sql);   $rs=mysql_fetch_array($query);   retrun $rs[$field]; //这里是返回}



この方法で書くと法的エラーが直接報告されます
解析エラー: 構文エラー、予期しない T_VARIABLE が最後の行を指します。これは return $rs[$field]; です。 rerun


return

である必要があります。

return


return

呼び出し時にエコーせずに関数内で直接表示したい場合はどうすればよいですか?

前に書いたものは通話時にエコーなしでも使えますが、判定には使えません。理解できない。いくつかのヒントを教えてください。ありがとうございます。

1. 関数内で $rs[$field]; を返す 2. 判定するときは var_dump(sysname("webstate")) を出力するだけ。



関数内では、echoは出力または印刷のみで、returnは関数の戻り値なので判断できます。

return

1. まず、デバッグの方法を学ぶ必要があります。ブレークポイントのデバッグを通じて、問題の場所がわかった場合にのみ、問題を修正できます。

2. 注: 問題が見えない場合があります。 : 3. 解決策: 解 Function Sysname ($ Field) {

$ SQL = "Select*from System";
$ RS = MySQL_FETCH_ARAY ;/ /引用符を追加する必要はありません
}
PHP ページ内: $aa = sysname("webstate");var_dump($aa); $aa が y を出力できるかどうかを確認します。そうであれば、判定ステートメントで if($ aa = = "Y"){echo "aa";}else{echo "bb";}出力内容を確認し、段階的にデバッグすることで解決できます。


1. 関数内で return $rs[$field];
2. 判定するときは、var_dump(sysname("webstate")) を出力するだけです。

こんにちは、まず最初に、ご協力に感謝しますが、そうではありません。 YNULL が出力されます

現在の戻り値は何ですか?

データベースのシステム テーブルに複数のレコードがある可能性がありますが、クエリしているフィールドは最初のレコードにありません
システム テーブルを見てください
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。