Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Bezpośredni dostęp do elementów po serializacji tablicy?
Forum PHP.pl > Forum > PHP
lukasamd
Witam,
dzisiaj w pewnym skrypcie spotkałem się z dziwną sytuacją. Chodzi o wysyłanie PW, do tej pory wszystko grało, po zmianie na PHP 5.4.1 w pewnym sensie siadło - brak informacji o odbiorcy.
Nie w tym jednak rzecz. Chodzi o to, że skrypt (nie ja jestem jego autorem) najpierw wykonywal serializację tablicy, a potem odwoływal się mimo to do jej elementów:

  1. $recipient_list = serialize($recipient_list);
  2.  
  3. /**
  4. * Tutaj jakis kod, z $recipient_list nie dzieje się nic
  5. */
  6.  
  7. if(isset($recipient_list['to']) && count($recipient_list['to']) == 1) {
  8. // Jakas akcja


Jako że wcześniej działało, a "jedyne" co się zmieniło to wersja php mam pytanie - czy w php 5.2 / php 5.3 takie coś było legalne?
Po ręcznym dodaniu unserialize wszystko na powrót zaczyna grać, więc innego wyjścia nie widzę.
Albo wersja php, albo jakieś konkretne ustawienie jego konfiguracji - pytanie, jakie?
!*!
Logiczne że jak używasz serialize() to musisz użyć unserialize() tak się powinno robić, aż dziwne że Twój sposób działał.
lukasamd
No napisałem, że to nie żaden mój sposób. To nie mój skrypt i błąd wyszedł dopiero po zmianie wersji php.
Ja wiem, że trzeba używać unserialize i o tym nie zapominam, no ale skoro tutaj go nie było a działalo... jakiś powód być musi.
toffiak
  1. <?php
  2. $recipient_list['to']=array('odbiorca1','odbiorca2','odbiorca3');
  3. $recipient_list = serialize($recipient_list);
  4. //$recipient_list = unserialize($recipient_list);
  5.  
  6.  
  7.  
  8. /**
  9.  
  10. * Tutaj jakis kod, z $recipient_list nie dzieje się nic
  11.  
  12. */
  13.  
  14.  
  15. echo(PHP_EOL.count($recipient_list['to']));
  16. echo(PHP_EOL.$recipient_list['to']);
  17.  
  18. if(isset($recipient_list['to']) && count($recipient_list['to']) == 1) {
  19. }
  20. // Jakas akcja
  21. ?>


Gdy tablica nie zostanie odserializowana to skrypt zwróci 1 i 'a' , więc też nie wiem w jaki sposób to mogło działać. Php 5.3.8
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.