Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

zoomie

Imprimir valores de array

Recommended Posts

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

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

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

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

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

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

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

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

 

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.