zoomie 0 Denunciar post Postado Abril 3, 2015 Olá pessoal. Estou iniciando a programar em PHP e estou gostando muito. A minha dúvida é sobre este array Erpk\Harvester\Module\Military\Campaign Object ( [id:protected] => 62248 [attacker:protected] => Erpk\Common\Entity\Country Object ( [id:protected] => 10 [name:protected] => Italy [code:protected] => IT ) [defender:protected] => Erpk\Common\Entity\Country Object ( [id:protected] => 65 [name:protected] => Serbia [code:protected] => RS ) [citizenSide:protected] => Erpk\Common\Entity\Country Object ( [id:protected] => 10 [name:protected] => Italy [code:protected] => IT ) [region:protected] => Erpk\Common\Entity\Region Object ( [id:protected] => 268 [name:protected] => Liguria [original_owner_country:protected] => Erpk\Common\Entity\Country Object ( [id:protected] => 10 [name:protected] => Italy [code:protected] => IT ) [zone:protected] => 32 [permalink:protected] => Liguria ) [isResistance:protected] => 1 [canFight:protected] => 1 ) Eu não estou conseguindo imprimir este array e nem passar ele com o foreach, ou seja, se ele estiver na variável $campanha não consigo fazer por exemplo echo $campanha["id"]; . Alguém poderia me ajudar? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
marsolim 110 Denunciar post Postado Abril 3, 2015 isso depende do nível que precisa. exemplos [nivel1][0] [nivel1][0][nivel2] [nivel1][nivel2][3] por aí... Compartilhar este post Link para o post Compartilhar em outros sites
zoomie 0 Denunciar post Postado Abril 3, 2015 isso depende do nível que precisa. exemplos [nivel1][0] [nivel1][0][nivel2] [nivel1][nivel2][3] por aí... Certo. Mais neste caso não consigo imprimir nenhum nível. Como seria para imprimir por exemplo o [id:protected]? Obrigado desde já. Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Abril 3, 2015 Lembre-se que você esta trabalhando com namespace e a saida é Object use Erpk\Harvester\Module\Military\Campaign $campaigns = new Campaign; foreach ($campaigns as $campaign) { echo $campaign->id; echo '<br />'; echo $campaign->attacker->name; echo '<br />'; echo $campaign->defender->name; echo '<br />'; } Compartilhar este post Link para o post Compartilhar em outros sites
zoomie 0 Denunciar post Postado Abril 3, 2015 Quase lá Williams. Agora surge esta mensagem: Fatal error: Cannot access protected property Erpk\Harvester\Module\Military\Campaign::$attacker in Creio que isto seja por causa que ele esta id:protected. Mas existe algum modo de imprimir mesmo assim? Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Abril 3, 2015 Tente assim use Erpk\Harvester\Module\Military\Campaign $campaigns = new Campaign; foreach ($campaigns as $campaign) { echo $campaign->id(); echo '<br />'; echo $campaign->attacker()->name; echo '<br />'; echo $campaign->defender()->name; echo '<br />'; } Compartilhar este post Link para o post Compartilhar em outros sites
zoomie 0 Denunciar post Postado Abril 3, 2015 Não deu certo Fatal error: Call to undefined method Erpk\Harvester\Module\Military\Campaign::id() in Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Abril 3, 2015 Declare estas propriedades como pública, para poder usar fora da classe. Ou vai ter que criar uma derivada dela para poder acessar! :yes: Compartilhar este post Link para o post Compartilhar em outros sites
zoomie 0 Denunciar post Postado Abril 4, 2015 Declare estas propriedades como pública, para poder usar fora da classe. Ou vai ter que criar uma derivada dela para poder acessar! :yes: Poderia me dar uma ajuda como eu faria para criar uma derivada ou algum material que eu possa ler. Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Santos Brito 12 Denunciar post Postado Abril 4, 2015 Poderia me dar uma ajuda como eu faria para criar uma derivada ou algum material que eu possa ler. Declare métodos que fiquem responsável por retornar o valor da propriedade, deste jeito: public function get_id(){ return $this->id; } E utilizar desta forma: echo $campaign->get_id(); Crie um método para cada propriedade, no entanto, ao meu ver isso é consumo de memória desnecessário, visto que você pode declarar as propriedades como públicas e acessá-las diretamente fora da classe. Mas fica a seu critério, abraços. Compartilhar este post Link para o post Compartilhar em outros sites