【问题标题】:I am getting undefined property in one place?我在一个地方得到了未定义的财产?
【发布时间】:2020-10-18 06:16:10
【问题描述】:

我是php新手

我有这个代码

 $query = $request->all();
    $allParameters = $request->all();
    $keyword = 'جورج';
    $apikey = 'XXX'; 
    $googleApiUrl = 'https://www.googleapis.com/youtube/v3/search?part=snippet&q=' . $keyword . '&maxResults=' . 100 . '&key=' . $apikey;
   // dd($googleApiUrl);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $googleApiUrl);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_VERBOSE, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $response = curl_exec($ch);
    curl_close($ch);
    $data = json_decode($response);
    $value = json_decode(json_encode($data), true);
    $init = new stdClass;
    $array = [];
    //dd($data->items);
     foreach($data->items as $i => $item) { 
            $i++;
            $init = new stdClass;
           //dd($item->id->videoId);
            //dd(sprintf("https://www.youtube.com/watch?v=%s",$item->id->videoId));
            $ura = sprintf("https://www.youtube.com/watch?v=%s",$item->id->videoId);
            $init->Nmae = $item->snippet->title;
          
          // $init->url =  sprintf("https://www.youtube.com/watch?v=%s",$item->id->videoId);
            $init->Id = $i;
            array_push($array,$init);
            DB::table('wassoufs')->insert(
              ['Id' =>$i , 'Name' => $item->snippet->title, 'url'=>  $ura]
            );
        };

未定义属性:stdClass::$videoId

dd(sprintf("https://www.youtube.com/watch?v=%s",$item->id->videoId));

工作正常

但是当我这样做时

 $ura = sprintf("https://www.youtube.com/watch?v=%s",$item->id->videoId);

我得到未定义的属性:stdClass::$videoId

有什么原因吗?

【问题讨论】:

    标签: php youtube-api


    【解决方案1】:

    发生这种情况,因为有时 videoId 为空。

    您不仅获得了 videoIds,还获得了 channelIds。

    如果你只对 videoIds 感兴趣,我会像这样重写。

           $i++;
           $init = new stdClass;
    
           if (isset($item->id->videoId)) {
    
                   $ura = sprintf("https://www.youtube.com/watch?v=%s",$item->id->videoId);
                   $init->Nmae = $item->snippet->title;
          
                   $init->Id = $i;
                   array_push($array,$init);
                   DB::table('wassoufs')->insert(
                      ['Id' =>$i , 'Name' => $item->snippet->title, 'url'=>  $ura]);
              }
    
            
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    • 2012-06-22
    • 1970-01-01
    相关资源
    最近更新 更多