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

WBOY
リリース: 2016-06-23 13:42:51
オリジナル
914 人が閲覧しました

問題はここの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 が出力されます

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

データベースのシステム テーブルに複数のレコードがある可能性がありますが、クエリしているフィールドは最初のレコードにありません
システム テーブルを見てください
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!