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
qrzysztof
post
Post #2





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

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


1. Nie za bardzo mi się w tej chwili chce, choć kiedyś do tego wrócę i na pewno poprawię. Choć nie mają one związku z opisywaną sytuacją to mają z pewnością (marginalny ale jednak) potencjał problemotwórczy.

2. Pokazałem to co istotne. Cała aplikacja ma przynajmniej kilka tysięcy linii kodu, nikt tego raczej nie będzie analizował.
3. Temu ile ma wspólnego poświęciłem już jedno zdanie i nie będę się powtarzał.
4. Nie wiem co rozumiesz pod pojęciem normalnie (logicznie). Coś tu można jeszcze jaśniej napisać niż ja to zrobiłem? Nie sądzę.

Ten post edytował qrzysztof 9.09.2011, 12:41:46
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: 3.10.2025 - 06:27