我在BookinginfoController.php第101行中收到此PHP返回错误:
遇到非数值...
这是其中的一些脚本。请在这里用基本术语进行解释。
$token =csrf_token();
$idmy = Auth::user()->id;
$bookingget = DB::table('booking')
->where('user_id', '=', $idmy)
->where('status', '=', 'pending')
->where('token', '=', $token)
->orderBy('book_id','desc')
->get();
$neshopp = $bookingget[0]->shop_id;
$shopnewie = DB::table('shop')
->where('id', '=', $neshopp)
->get();
$id = $shopnewie[0]->user_id;
$userdetails = DB::table('users')
->where('id', '=', $id)
->get();
$booking = DB::table('booking')
->where('token', '=', $token)
->where('status', '=', 'pending')
->where('user_id', '=', $idmy)
->orderBy('book_id','desc')
->get();
$ser_id=$booking[0]->services_id;
$sel=explode("," , $ser_id);
$lev=count($sel);
$ser_name="";
$sum="";
$price="";
for($i=0;$i<$lev;$i++)
{
$id=$sel[$i];
$fet1 = DB::table('subservices')
->where('subid', '=', $id)
->get();
$ser_name.=$fet1[0]->subname.'<br>';
$ser_name.=",";
$fet2 = DB::table('seller_services')
->where('subservice_id', '=', $id)
->where('shop_id', '=', $neshopp)
->get();
$price.=$fet2[0]->price.'<br>';
$price.=",";
$ser_name=trim($ser_name,",");
$price=trim($price,",");
$sum+=$fet2[0]->price;
我正在使用PHP 7.2
第99、100、101行是
$ser_name=trim($ser_name,",");
$price=trim($price,",");
$sum+=$fet2[0]->price;
答案 0 :(得分:2)
如果您使用的是php 7.1+,则是由于将$sum
变量初始化为空字符串而引起的:
$sum = '';
相反,您应该将其初始化为数字:
$sum = 0;
请参见an example。
很显然,$fet2[0]->price
必须是数字,但是如果它是字符串,则php会在没有警告的情况下进行强制转换。