No se puede acceder al desplazamiento de tipo cadena en cadena... ¿Qué demonios?

Hola,

Tengo una función php (llamada por ajax) que me envía este mensaje de error (Cannot access offset of type string on string) y no entiendo de dónde viene... ¡Ayuda!
Aquí está la llamada a mi función
 if ($flwprosp) { $result = flwprosp($flwprosp, $civilite, $iduser, $nrp, $tel, $mail, $nom, $prenom, $adresse, $cpostal,$ville, $where, $date, $comment, $nextact, $noway, $debug); } </code Aquí están los datos que se reciben <code php> Array ( [flwprosp] => 2151300759 [nrp] => 1 [civilite] => Mme [iduser] => baa9188a-0dd0-4f50-aaab-65e421cca195 [tel] => tel [mail] => mail [nom] => nom [prenom] => prenom [adresse] => adress [cpostal] => 00000 [ville] => ville [where] => splae [date] => 23/06/12:00 [comment] => eer [nextact] => 5 [noway] => 1 [debug] => 1 ) 


y aquí está mi función
 function flwprosp($idplace, $civilite, $iduser, $nrp, $tel, $mail, $nom, $prenom, $adresse, $cpostal,$ville, $where, $date, $comment, $nextact, $noway, $debug) { echo " flwprosp($idplace, $civilite, $iduser, $nrp, $tel, $mail, $nom, $prenom, $adresse, $cpostal,$ville, $where, $date, $comment, $nextact, $noway, $debug)"; if ($noway==1) { $client['statut'] = 4; } if ($nrp==1) { $client['statut'] = 3; } else { $client['statut'] = 2; } if ($nrp = 1) { $nextact = 7; } //actualizamos el bien $table = "Annonces"; $where["idlbc"] = $idplace; $place["adresse"] = $adresse; $place["cpostal"] = $cpostal; $place["ville"] = $ville; \Models\Admin::update($place, $table, $where, "", $debug); } 


Esto me dice

flwprosp(2151300759, Mme, baa9188a-0dd0-4f50-aaab-65e421cca195, 1, tel, mail, nom, prenom, adress, 00000,ville, splae, 23/06/12:00, eer, 5, 1, 1)
<br />
"Fatal error</b>: Uncaught TypeError: Cannot access offset of type string on string in /homepages/41/d736140878/htdocs/escalierb/admin/www/ajx/ajax.php:55"

Y la línea 55 es esta
 $where["idlbc"] = $idplace; 


Por lo que entiendo, hay un intento de acceder a un índice de un arreglo o algo así, sin embargo, el valor de $idplace es 2151300759, por lo que es un simple entero... ¿Qué me estoy perdiendo? ????
Gracias de antemano por tu ayuda, es una gran urgencia para mí...

Configuración: Macintosh / Firefox 99.0

4 respuestas

  1. Colaborador
    Hola, el punto de partida sería compartir tu código completo.
    Gracias por indicar el nombre de cada archivo que compartes.

    ¿Qué has asignado a
    $where
    antes de llamar a la función?
    ¿Has escrito este código?
    ¿Lo estás probando por primera vez?
    0
    1. Colaborador
      ¿Qué intentas hacer en la línea 55?
      ¿Qué es este
      $where["idlbc"]
      ?

      ¿Has intentado traducir el mensaje de error?
      Para mí, dice "No se puede acceder a un desplazamiento de tipo cadena en una cadena".
      Eso indica que no se permite usar un índice de tipo cadena ("idlbc") en una cadena ($where).

      ¿No está claro?
      0
  2. Bueno, encontré mi respuesta sola, proviene de la actualización de mi hospedaje que ha pasado a php8, hay bastantes funciones en mis scripts que ya no le agradan en absoluto... ;-)
    Así que para aquellos que tengan el mismo problema, la buena sintaxis es
     $where = ["list_id" => $idplace];
    0
    1. Colaborador
      Para terminar, ¿qué haces con el parámetro $where recibido por la función?
      0
  3. Lo siento, no encuentro cómo poner en estado "Resuelto", cada vez me cuesta.
    0
    1. Colaborador
      Para poner en "resuelto": los
      ...
      debajo de la pregunta inicial.
      0
  4. Para responder a yg_be (¡gracias por tu ayuda!), sí, escribí este código y lo he utilizado cientos de veces. Lo único que ha cambiado es la versión de PHP de mi servidor... ;-)
    ¡Pero aquí hay un problema resuelto, gracias de todos modos!
    0