Как отладить «встречается нечисловое значение» в PHP? - PullRequest
0 голосов
/ 31 октября 2018

Я получаю эту ошибку возврата PHP в моей строке BookinginfoController.php 101:

Обнаружено нечисловое значение ...

Вот некоторые из сценариев. Пожалуйста, объясните в основных терминах здесь.

$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;

1 Ответ

0 голосов
/ 31 октября 2018

Если вы используете php 7.1+, это вызвано тем, что вы инициализируете переменную $sum в виде строки emtpy:

$sum = '';

Вместо этого вы должны инициализировать его как число:

$sum = 0;

См. пример .

Очевидно, что $fet2[0]->price должен быть числовым, но если это строка, php будет приводить ее без предупреждений.

...