3

私はテーブルを構築しており(を使用していません<table>)、mysqlからのデータを入力しています。「テーブル」を構築するための次のコードがあります。

$NYC = // data from mysql, working fine
$NYC_min = 300;
switch($cou_mun){
    case "New York":
        $NYC++;
        break;
    //etc
}

function cityMinMet($city){
    $city_min= "$city" . "_min";
    if($city>$city_min){return "yes";}
    else{return "no";};
}

echo "<h3>Table 6: Recruitment by target area</h3>";
echo "<ul>\n<li><span>Target Area</span><span>Number Recruited</span><span>Amount under minimum</span><span>Minimum</span><span>Minimum met?</span></li>";
echo "<li><span>12 Jurisdictions with Highest AIDS Prevalance</span><span></span><span></span><span></span><span></span></li>";
echo "<li><span>New York</span><span>$NYC</span><span>" . $NYC_min-$NYC . "</span><span>$NYC_min</span><span>"; cityMinMet('$NYC'); echo "</span></li>";

で問題が発生しました: 行が壊れます" . $NYC_min-$NYC . "(行は の直前で終了すると解釈されます。" . $NYC_min-$NYC . "<span>$NYC_min-$NYC</span>300-500200

また、関数を適切にセットアップしたかどうかもわかりません (ただし、これはテーブル/行を壊していません)。FromcityMinMet('$NYC')リテラル文字列$NYC(値ではなく) を関数に送信します。関数内で追加_min$NYCてから呼び出す必要があり$NYC_min、その値を返します。

編集:方程式の$NYCとの順序を変更しました。$NYC_min

4

5 に答える 5

11

括弧で囲みます:

" . ($NYC - $NYC_min) . "
于 2011-09-15T19:47:26.470 に答える
2

あなたの最初の問題:$NYC - $NYC_min文字列と連結しているため、文字列として解釈されています (そのように微妙にキャストされています)。エコーの前に数学を実行し、そこに書き込む変数に格納する (クリーン) か、角かっこに入れて、php パーサーが文字列連結コンテキストを考慮する前に解釈することができます。

于 2011-09-15T19:48:50.647 に答える
2

の場合は" . $NYC-$NYC_min . "、に変更します" . ($NYC-$NYC_min) . "

リテラル文字列を渡すには、 を$NYC使用します"\$NYC""ここでは一重引用符の代わりに二重引用符を使用する必要があることに注意して'ください。そうしないと、文字列リテラルが渡されます\$NYC

@webbiedave が彼のコメントで指摘して'$NYC'いるように、文字列リテラルを送信する必要があるため、それを渡します$NYC

于 2011-09-15T19:46:51.913 に答える
1

cityMinMet('$ NYC')からリテラル文字列$ NYC(値ではなく)を関数に送信します。

関数を呼び出す方法(一重引用符で)は、リテラル文字列を渡します。

ただし、in functionの値が必要な場合は、その値を$NYC_min関数cityMinMetに渡すだけです。

function cityMinMet($city, $city_min)
{
    if ($city > $city_min) {
        return "yes";
    } else {
        return "no";
    }
}

呼び出しコードで次のことを行います。

echo cityMinMet($NYC, $NYC_min);

または、関数をすべて一緒に放棄して、次のことを実行することもできます。

echo ($city > $city_min) ? 'yes' : 'no';
于 2011-09-15T20:33:10.367 に答える
0

必要なことを実行するためのクイック関数を作成するのが最も簡単かもしれません:

function calculate($nyc, $nyc_min) {
  return $nyc - $nyc_min;
}

次に、あなたが持っているものを置き換えます:

echo "<li><span>New York</span><span>$NYC</span><span>" . calculate($NYC,$NYC_min) . "</span>...";
于 2011-09-15T20:14:30.153 に答える