从数据库中提取的变量在函数中不起作用


Variable pulled from DB not working in a function

无法理解为什么从数据库中提取的变量不起作用。

我有一个使用 array_search() 搜索的数组。

像这样使用函数:

$band2 = taxBandtoPrice2("$car->tax_band");
echo "(£$band2 Per Year)"; 

请注意,"$car->tax_band"是采用tax_band值的查询。这部分适用于一定。

$band 2 始终为空。如果我用"c"替换"$car->tax_band",它可以正常工作。

应该如何做到这一点,我可能会出错?

函数本身:

function taxBandtoPrice2($taxband){
  $bands = array(
    0 => 'a',
    1 => 'b',
    ...
  );
  $key = array_search($taxband, $bands);
  return $key;
}

查看代码,它应该可以工作。您可以尝试以下更改:

$band2 = taxBandtoPrice2($car->tax_band);
echo "(£{$band2} Per Year)"; 

使用 var_dump($car->tax_band) 和稍后的 var_dump($band2) 确保值和类型是什么。我能想到的有两个原因:

  1. $car->tax_band 不等于 $bands 中的值。甚至一个空格和小写/大写有所不同。
  2. $car->tax_band获取的列表项在传递给函数之前被覆盖。

对我这个的简单修复。

我正在传入一个 C,但我的数组中的值是小写的......

我将值更改为小写

strtolower();