Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> IE7/8 i funkcja unset w PHP
qrzysztof
post
Post #1





Grupa: Zarejestrowani
Postów: 220
Pomógł: 19
Dołączył: 25.04.2009

Ostrzeżenie: (0%)
-----


Wszyscy wiemy, że IE7/8 to badziewie jakich mało. Dotychczas myślałem, że te przeglądarkopodobne produkty wtrącają się tylko do HTML i CSS. Nic bardziej błędnego. Okazuje się, że potrafią namieszać również w kodzie PHP.

Mam poniższy kod:

  1. public function deleteQuestion ($id)
  2. {
  3.  
  4. if ( in_array($id, array_keys($this->_questions)) )
  5. {
  6. unset($this->_questions[$id]); #problematyczna linia
  7.  
  8. #usuniecie pytania z bazy
  9. $this->dbm->deleteQuestion($id);
  10.  
  11. return true;
  12. }
  13. return false;
  14. }


We wszystkich przeglądarkach działa poprawnie. Natomiast w IE7/8 po wejściu do tej funkcji a następnie do bloku warunkowego, zaznaczona przeze mnie linia powoduje wyjście z funkcji bez zgłoszenia błędu czy wyjątku. Jest to tym bardziej dziwne, że
Kod
$this->_questions[$id]
istnieje, a jeszcze bardziej ponieważ kolejna linia usuwająca pytanie z bazy jeszcze się wykonuje! Ale return true już najwyraźniej nie bo funkcja nie zwraca true!

Gdy zmienię kod na:
  1. if ( $this->questions[$id] )
  2. {
  3. unset($this->_questions[$id]); #problematyczna linia
  4. }


sytuacja nie ulega zmianie.

Zaznaczę, że do testów używam emulatorów IE7 na XP (ale różnych i we wszystkich jest tak samo), natomiast IE8 w pełnej wersji również na ten system.

Ten post edytował qrzysztof 9.09.2011, 09:13:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




No i już wiesz czemu nie działa unset - bo nie masz takiego elementu na liscie, który chcesz usunać. Już wiesz, że błedem nie jest unset a Twoja lista - czyż nie jest od razu jaśniej? Bo moim zdaniem jest, już nie krążysz przy unset, które nie jest niczemu winne


ps: zastosowałeś się do porad z linku co ci podałem? Wyswietlanie wszystkich błędów i itp?

Cytat
Nie no, aż tak naiwny nie jestem. Wszystko sprawdziłem zanim napisałem.
Widać nie sprawdzałeś. Jakbyś sprawdził to byś wiedział, że to nie unset.
Go to the top of the page
+Quote Post

Posty w temacie
- qrzysztof   IE7/8 i funkcja unset w PHP   9.09.2011, 09:05:41
- - nospor   IE nie ma nic do php. [PHP] pobierz, plaintext pub...   9.09.2011, 09:10:43
- - darko   Ee raczej się mylisz z tym wtrącaniem się w kod ph...   9.09.2011, 09:10:57
- - nospor   I jeszcze Temat: Jak poprawnie zada pytanie Wyświe...   9.09.2011, 09:11:23
- - qrzysztof   Cytat(nospor @ 9.09.2011, 10:10:43 ) ...   9.09.2011, 09:31:20
- - nospor   No i już wiesz czemu nie działa unset - bo nie mas...   9.09.2011, 09:34:06
- - qrzysztof   Nospor, sprawa nie jest taka prosta jak się na pie...   9.09.2011, 09:38:23
- - nospor   SKoro nie istnieje na liscie twoje ID, to kod nie ...   9.09.2011, 09:40:21
- - qrzysztof   Wyświetla się Kodstring(4) "2425...   9.09.2011, 09:44:48
- - nospor   Dla IE? To się zdecyduj, co ci wyświetla, bo teraz...   9.09.2011, 09:45:48
- - qrzysztof   Chciałbym się zdecydować, ale to niestety nie ode ...   9.09.2011, 09:47:09
- - nospor   A jak skasujesz DIE to znowu wyświetlają się tylko...   9.09.2011, 09:48:19
- - qrzysztof   Ok, już sprawdzam... Na razie nie znalazłem na to...   9.09.2011, 09:49:08
- - nospor   zapytam ponownie: czy bez DIE dla IE wyświetlają s...   9.09.2011, 09:59:36
- - qrzysztof   Bez die: 2 elementy w tablicy z die: 3 elementy O...   9.09.2011, 10:04:29
- - drPayton   [PHP] pobierz, plaintext var_dump(array_keys...   9.09.2011, 10:07:34
- - nospor   CytatBez die: 2 elementy w tablicy z die: 3 elemen...   9.09.2011, 10:11:09
- - qrzysztof   @drPayton dał jednak dobry trop: O dziwo jeśli zr...   9.09.2011, 10:17:24
- - drPayton   Control question: $this->dbm != ...   9.09.2011, 10:20:07
- - qrzysztof   @drPayton - o zapętlaniu nie ma mowy, choć jeszcze...   9.09.2011, 10:22:23
- - nospor   CytatPonieważ to die(), które @nospor zaproponował...   9.09.2011, 10:24:17
- - qrzysztof   Ustawienie raportowania na E_ALL wyrzuciło parę bł...   9.09.2011, 12:14:39
- - melkorm   Za przeproszeniem: Pieprzysz farmazony że to aż st...   9.09.2011, 12:28:52
- - qrzysztof   1. Nie za bardzo mi się w tej chwili chce, choć ki...   9.09.2011, 12:41:17
- - melkorm   CytatTo die() w tym drugim przypadku wykonuje się ...   9.09.2011, 13:07:06
- - qrzysztof   No nie do końca. Tak jak pisałem. Die() się wykon...   9.09.2011, 13:23:49


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 19:24