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-500而不是200.

另外我不确定我是否正确设置了我的功能(但这不会破坏表格/行)。从cityMinMet('$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 . ",更改为" . ($NYC-$NYC_min) . "

要传递文字字符串,请$NYC使用"\$NYC". 注意,这里需要用双引号"代替单引号',否则会传递字符串字面量\$NYC

正如@webbiedave 在他的评论中指出的那样,传递它'$NYC'应该已经发送字符串文字$NYC

于 2011-09-15T19:46:51.913 回答
2

你的第一个问题:$NYC - $NYC_min被解释为一个字符串(这样巧妙地转换),因为你将它与一个字符串连接起来。您应该在回显之前执行数学运算并将其存储在您在其中写入的变量中(干净),或者您可以将其放在括号中,以便在 php 解析器考虑字符串连接上下文之前对其进行解释。

于 2011-09-15T19:48:50.647 回答
1

从 cityMinMet('$NYC') 我想要将文字字符串 $NYC (而不是它的值)发送到函数。

您调用函数的方式(使用单引号)将传递文字字符串。

但是,如果您需要$NYC_minin 函数的值,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 回答