Ir ao conteúdo
  • Cadastre-se

PHP - Pegar valor de um campo do array


Visitante

Posts recomendados

Olá pessoal, estou com uma dificuldade em php.
Basicamente, quero pegar o valor do campo "tipo" da array fields, e usa-lo em um if/else dentro da função construct... mas não estou conseguindo. Segue abaixo a classe resumida só pra ilustrar:

class Registrationcontroller{private $fields = array( 'user' => 'username', 'password' => 'password', 'password_confirm' => 'password confirmation', 'email' => 'email address', 'tipo' => 'tipo');public function __construct( Registry $registry)if (tipo == 0){ "FAZER ESTE CODIGO"}else{ "FAZER ESTE CODIGO"}}

A minha classe está assim:

class Registrationcontroller{private $fields = array( 'user' => 'username', 'password' => 'password', 'password_confirm' => 'password confirmation', 'email' => 'email address', 'tipo' => 'tipo');private function retornaTipo(){                $retornotipo =0;		for($i =0; $i <= count($fields); $i++)		{			$retornotipo = $fields[$i];		}		return retornotipo;}public function __construct( Registry $registry){    $retornotipo = retornaTipo();    if($retornotipo == '1')    {    'faz esse codigo'    }    else    {     'faz esse codigo'     }}

Como posso fazer isso? :( obrigada

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Acho que você deseja fazer algo assim:
 

class Registrationcontroller {    private $fields = array(        'user' => 'username',        'password' => 'password',        'password_confirm' => 'password confirmation',        'email' => 'email address',        'tipo' => 'tipo');    public function __construct(Registry $registry){        if($this->fields['tipo'] == '1'){            // O tipo é 1, fazer tal código        } else {            // Tipo não é 1, faz outro código        }    }}

Dá uma olhadinha sobre visibilidade de propriedades e seus acessos aqui:
http://php.net/manual/en/language.oop5.visibility.php

 

Abraços!

Link para o comentário
Compartilhar em outros sites

Funcionou, mas não deu certo no meu projeto.

Acredito q eu tenha que passar o valor de 'tipo' para uma outra classe e fazer o if/else nela [seria na classe Registrationcontrollerextention]

Pra isso também uso a propriedade Visibility? Em todo caso, vou dar uma lida.

 

ps: tentei pegar a variável declarando Registrationcontrollerextention extends Registrationcontroller 

estou no caminho certo? rs

mt obrigada!

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Propriedade visibility? A visibilidade de um método (function) ou propriedade (variavel) define o escopo em que esse metodo/propriedade poderá ser acessado.. no seu caso, você declarou a propriedade "fields" como private, portanto classes "filhas" (que extendem a classe que a contém) não possuem acesso.

 

O caminho está certo mas você precisaria alterar de "private" para "protected".

Veja mais aqui (utilize o Google Translator se necessário): http://stackoverflow.com/a/21902271

PS: Recomendo aprender o mais rápido possível sobre CamelCase.. demora 5 minutinhos:
http://pt.wikipedia.org/wiki/CamelCase

 

Registrationcontrollerextention extends Registrationcontroller
Deveria ser:
RegistrationExtensionController extends RegistrationController

Abraços!
 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...