从辅助函数返回或回显一个值就是给出一个加上“null”PHP的值

时间:2017-01-17 20:01:41

标签: php laravel

我目前有一个帮助函数,我通过检查.xlxs价格文件来计算产品价格,该文件有2列,A表示天数,B表示该行的价格。

现在,这一切都在我的报价页面上工作正常,显示价格,但是当我在处理付款时再次运行支票以确保价格正确时,我得到了不同的价值。完全相同的数据进入完全相同的辅助函数。

例如,在我的产品显示页面上的响应会将价格值显示为“40”。但是当我在我的BookingController(使用laravel)上调用它时,我得到“40”然后在它下面的另一个只是说“null”。这使我无法计算转换为美分/便士的价格与条带一起使用,因为它表示无效的正整数。

我已经完成了一些调试,当我在辅助函数中输入$ price时它只返回“40”但是当我在控制器中的变量上显示无效的价格和“null”时它

这里有什么想法吗?

我已经尝试在辅助函数中返回值,并且我也尝试回显并打印它,所有相同的问题。我现在就告诉你我的代码:

$price2 = (new \App\Price\GeneratePrice($duration, $base_price))->calculate();

这是辅助函数

 public function calculate()
{
    $pricelist = '/public/pricelist.xlsx';

    \Excel::load($pricelist, function ($reader) {

       $days = $this->duration;
        $base = $this->basePrice;

        $array = $reader->select(array('days', 'price'))->toArray();
        $size = sizeof($array);
        if ($days > $size) {
            $key = array_search($size, array_column($array, 'days'));
            $diff = $this->duration - $size;
            $k = $array[$key]['price'];
            $baseprice = $base * $diff;
            $price = $k + $baseprice;

            echo $price;
        }
        else {

            $key = array_search($days, array_column($array, 'days'));
            $k = $array[$key]['price'];
            $price = $k;

            echo $price;

        }

    });
}

这是我得到的回应

38

“NULL”

0 个答案:

没有答案