访问PHP对象中的值

时间:2015-06-28 09:28:21

标签: php object

我有以下PHP对象,我想从中访问特定值,但我很难理解如何启动:

   kamranahmedse\Geocode Object (
     [service_url:kamranahmedse\Geocode:private] => http://maps.googleapis.com/maps/api/geocode/json?sensor=false
     [service_results:kamranahmedse\Geocode:private] => stdClass Object (
       [results] => Array (
         [0] => stdClass Object (
           [address_components] => Array (
             [0] => stdClass Object (
               [long_name] => 112
               [short_name] => 112
               [types] => Array (
                 [0] => street_number
               )
             )
             [1] => stdClass Object (
               [long_name] => Imittou
               [short_name] => Imittou
               [types] => Array (
                 [0] => route
               )
             )
             [2] => stdClass Object (
               [long_name] => Cholargos
               [short_name] => Cholargos
               [types] => Array (
                 [0] => locality
                 [1] => political
               )
             )
             [3] => stdClass Object (
               [long_name] => Cholargos
               [short_name] => Cholargos
               [types] => Array (
                 [0] => administrative_area_level_5
                 [1] => political
               )
             ) ...

例如,我如何访问:

[long_name] => Cholargos

1 个答案:

答案 0 :(得分:3)

您尝试访问的变量是私有的,因此您无法直接访问它。

更好的方法是使用您正在使用的类提供的方法。 查看您提供的代码,我可以看到您正在使用https://github.com/kamranahmedse/php-geocode

以下是如何使用它来获取地点的示例:

<?php

require __DIR__."/vendor/autoload.php";

use kamranahmedse\Geocode;

$address = "Imittou 112 Cholargos 155 61 Greece";

$geocode = new Geocode($address);

echo $geocode->getLocality();

另外,查看类源代码,我们可以看到,当检索地址信息并填充局部变量时,long_name用于填充局部性,这就是你想要的:

$this->locality = $component->long_name;

所以上面的代码示例应该回答你的问题。