Ir para conteúdo

POWERED BY:

Arquivado

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

Rafaelgja

[Resolvido] Erro Array

Recommended Posts

olá, gostaria de pedir um auxilo para vocês, estou tendo problema com meu site, está dando um erro array

 

Warning: Cannot use a scalar value as an array in /includes/class.smarttemplate.php on line 306

 


              $ref_obj[$blocks[$blockcount]][]  =  $value;
           }
           else
           {
               $this->data[$name][sizeof($this->data[$name])] = $value;         <-- linha 306   
           }
	}

 

agradeço desde já.

 

att Rafael

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro diz o problema: você está tentando acessar como array um valor escalar (provavelmente um valor numérico)

reveja as variáveis e os valores que elas estão recebendo

 

mais esse erro so está dando quando acessa a "area account", estou começando agora na programação, tentei identificar o erro sem exito.

 

mesmo assim Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais esse erro so está dando quando acessa a "area account"

provavelmente alguma variável está recebendo um valor errado. só depurando pra saber

 

veja a função var_dump():

http://www.php.net/var_dump

 

use-a para ver o valor de cada variável dessa linha. assim você identifica o problema

 

var_dump( $variavel );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, apenas por esse fragmento de código não justifica tal erro.

 

Veja, nessa linha existe uma variável e um retorno de função atuando como índices da propriedade $data.

 

Uma pseudo-classe como essa:

 

class foo {

   public $data;

   public function __construct($name,$value) {

       $this->data[$name][sizeof($this->data[$name])] = $value;
   }
}

$foo = new foo('Bruno', 10);

var_dump( $foo -> data );

Roda tranquilamente, isto é, não reproduz o erro demonstrado, que significa que você está usando uma variável scalar (veja quais são) como array.

 

Sendo assim, por dedução, o que está ocorrendo é que na definição da propriedade, você força o valor inicial da mesma como sendo um desses tipos, por exemplo:

 

public $data = 1;

Assim eu consigo receber o mesmo erro.

 

Quando se trabalhando com Orientação a Objetos é importante tentar definir o tipo de uma propriedade, mesmo que o PHP não seja uma linguagem fortemente tipada.

 

Mudando a declaração acima para o mesmo do primeiro CODE ou:

 

public $data = array();

Já resolve o problema.

 

Se a propriedade vai armazenar um array, defina-o como array. Se você não tem certeza, ou pode haver alguma conversão, omita o tipo.

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.