Jump to content


Photo

Cannot Use String Offset As An Array


  • Faça o login para participar
9 replies to this topic

#1 rcesar

rcesar

    Normal

  • Usuários
  • 80 posts
  • Sexo:Não informado

Posted 17/03/2006, 00:03

Pessoal, tenho instalado o PHP 5.1.1 e me tem dado esse erro quando trabalho com arrays, que no PHP 4 não ocorria.

Alguém tem algum comentário a respeito?

O erro é esse:

Cannot use string offset as an array

Obrigado!
R. César Design

#2 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 17/03/2006, 01:42

Tenho, e além disso, já lhe respondi à 13 dias atrás: http://forum.wmonlin...howtopic=143480 <_<

Amnésia ? :assobio: :P

[]’s :DAté mais

#3 rcesar

rcesar

    Normal

  • Usuários
  • 80 posts
  • Sexo:Não informado

Posted 17/03/2006, 01:48

O, foi mal, é que eu nao tinha olhado, achei q ninguem tinha respondido.

Valews

Mais é assim, por exemplo:

Obtenho um retorno da seguinte forma:
$retorno[MENSAGEM] = "SERVER CONECTADO...";

ai pego isso assim:

$Dados[Mensagem] = $retorno[MENSAGEM]


if este retorno vem vázio ou sem mensagem, me é mostrado o erro.

Edição feita por: rcesar, 17/03/2006, 01:53.

R. César Design

#4 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 17/03/2006, 01:50

O, foi mal, é que eu nao tinha olhado, achei q ninguem tinha respondido.

Valews

Acontece. :P

E aí, minha resposta resolveu seu problema ? :rolleyes:

[]’s :DAté mais

#5 rcesar

rcesar

    Normal

  • Usuários
  • 80 posts
  • Sexo:Não informado

Posted 17/03/2006, 01:53

Eu editei o Post, da uma olhada!

Valews
R. César Design

#6 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 17/03/2006, 01:59

Hmm ... a princípio, isto não ajudaria em nada. *rs* :P

Faltam algumas aspas entre as strings dentro dos colchetes, mas não é isto que está gerando este problema. :ponder:

Aonde tem $retorno[MENSAGEM], por exemplo, deve ser $retorno['MENSAGEM'], pois se trata de uma string. ;)

Mas ... como disse, não é este o problema. Para facilitar, quem é $retorno ? E $Dados ? São strings ou arrays ? :rolleyes:

Se possível, insira o trecho do código aonde tu trabalha com estes dados. Não o código todo, só o trecho envolvido. ;)

[]’s :DAté mais

#7 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 17/03/2006, 02:01

Experimente colocar o índice entre apóstrofo/aspas.
Do jeito que você está fazendo, você está indicando o valor de uma constante para o índice do array.

Talvez no PHP5 esse erro dos progamadores seja corrigido na base das mensagens de erro como no seu caso. Troque aí e veja...

(Até que enfim isso vai acabar!) :D


Leia o manual e seja feliz. :P
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#8 rcesar

rcesar

    Normal

  • Usuários
  • 80 posts
  • Sexo:Não informado

Posted 17/03/2006, 02:13

Eu ja tentei com apostrofos, mais não esse o problema, o mesmo codigo nao da problema nenhum quando rodado no PHP 4, tem pouco tempo que instalei o 5. Mais vamos ao que interessa.

Estou trabalhando com WebService, ao consultar um Método, o retorno é em vetores 'Array', dai eu trato esse retorno, lembrando, estou usando nusoap.

Por exemplo:

Valor retornado pelo WebService:


$retorno[GetAvailabilityResult][body][getAvailabilityResponse][output][AvailabilityGroup][SItemAvailabilityGroup][Components][SItemComponents][Fares][SItemFares][TotalAmount][Amount]


No código acima, eu obtenho um valor de Tarifa

Guardo da Seguinte Maneira:


$FlightDados[TARIFAS][TOTALTARIFAS] = $$retorno[GetAvailabilityResult][body][getAvailabilityResponse][output][AvailabilityGroup][SItemAvailabilityGroup][Components][SItemComponents][Fares][SItemFares][TotalAmount][Amount];


Onde "$FlightDados[TARIFAS][TOTALTARIFAS]" é uma array que eu criei para guardar o valor.

Deu pra entender?
R. César Design

#9 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 17/03/2006, 09:19

Vamos tentar assim:
<?php

    $FlightDados = array();
    $retorno     = array();
    
    // ...

    $FlightDados['TARIFAS']['TOTALTARIFAS'] = $retorno['GetAvailabilityResult']
                                                      ['body']
                                                      ['getAvailabilityResponse']
                                                      ['output']
                                                      ['AvailabilityGroup']
                                                      ['SItemAvailabilityGroup']
                                                      ['Components']
                                                      ['SItemComponents']
                                                      ['Fares']
                                                      ['SItemFares']
                                                      ['TotalAmount']
                                                      ['Amount'];

?>

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#10 rcesar

rcesar

    Normal

  • Usuários
  • 80 posts
  • Sexo:Não informado

Posted 18/03/2006, 02:21

Valews Rapaziada!

Funcionou, engraçado que pensei em fazer isso antes, mas o costume de 'achar que vai ser mais uma tentativa', nao me deixou fazer.

Belews, agora nao sei porque so acontece no PHP 5.

Abraços
R. César Design




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq