Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> czy należy korzystać z notice i funkcji typu empty
e-Gandalf
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 195
Pomógł: 0
Dołączył: 7.07.2003
Skąd: Warszawa

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


Fragment wydzielony z topicu
http://forum.php.pl/viewtopic.php?t=3921[/...
(DeyV)
-------------------------------------------------



scaner: ale to byly inne jezyki (jak i inne czasy). Dzis ludzie ucza sie od razu na jezykach wysokiego poziomu i nie maja pojecia co to jest zmienna, co to jest pamiec, jak to to jest zarzadzane...

DayV - jasne, ze mozna i ze robi sie tak. Pytanie tylko czy to maniera prawidlowa i czy tak wlasnie powinno sie nauczac? :wink:
Ja ignorowalem noticy dopoki przypadkiem nie przyszlo mi stawiac mojego skryptu na wlasnie takim serwerze jak opisalem... Od tego czasu zawsze pilnuje zeby nie bylo najmniejszego nawet bledu.

A swoja droga... no coz, sprawdzilem. Maszyna: Athlon 1.8Ghz, WinXP, Apache2, php 4.3.0:

Kod 1) w php.ini error_reporting = E_ALL & ~E_NOTICE

[php:1:db2ac36647]<?php
$m=0;
for ($i=0;$i<10000;$i++ ){
if($x) {
$m=1;
}
}
?>[/php:1:db2ac36647]

Wynik ab -n 300 - Requests per second: 40.76 [#/sec] (mean)

Kod 2) w php.ini error_reporting = E_ALL

[php:1:db2ac36647]<?php
$m=0;
for ($i=0;$i<10000;$i++ ){
if(isset($x)) {
$m=1;
}
}
?>[/php:1:db2ac36647]

Wynik ab -n 300 - Requests per second: 91.87 [#/sec] (mean)

No to chyba mam mocny argument? (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
FiDO
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Cytat
Hmm... Nie! (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Nadal sie nie zgadzamy.

(IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Cytat
Wniosek? Nawet w przypadku gdy zajmujemy sie najszerszym mozliwym aspektem zastosowania konstrukcji if($x) nadal empty wygrywa.

Ale to byla walka isset'a z if($x) a tutaj dochodzi nowy zawodnik empty (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Cytat
I to przy zalozeniu, ze w 50% sytuacji zmiennej x nie ma, w 25 jest i jest pozytywna, a jeszcze w 25% jest TRUE.

Albo sie myle, albo znowu ((IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) wypatrzylem blad. Jest 50-50 ze zmienna jest lub jej nie ma (a nie 50-25, bo to niedopelnia nawet do 100% (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) i 50-50 w jednym z tych poprzenich 50, ze zwroci TRUE, czyli upraszczajac 25%, ze bedzie TRUE, a 75% ze FALSE. Moze to miales na mysli, ale ja to inaczej odebralem.
Cytat
A przeciez jesli zdarza sie przyklad ktory opisalem, to zdecydowanie wiecej jest odslon z pokazaniem formularza (zmiennej nie ma) niz z wyslaniem.

No wlasnie to zalezy od sytuacji...
Tak jak mowisz jest ok, ale np. gdy GET'em przekazujemy dzial w ktorym jestesmy na stronie to 95% zmienna jest ustawiona, bo chyba rzadko ktos sobie sprawdza co sie stanie gdy nie bedzie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
A jak juz pisalem i mierzylem przy zalozeniu, ze zmienna istnieje if($x) jest szybsze niz isset, chociaz ja wtedy stosuje switch'a i jest jeszcze lepiej, ale wiadomo o co chodzi (tylko przyklad nienajlepszy wybralem, ale pozno jest... wybacz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ).
Cytat
Ogolnie wychodzi mi, ze lepiej jest zawezac wybor (co logiczne i czemu konstrukcja if($x) szkodzi ;p) a jesli sie nie da, stosowac jawne sprawdzanie.

No tak, ale nie debatowalismy (a przynajmniej tak mi sie wydawalo i chyba nawet to gdzies zaznaczylem) nad tym jaka opcja jest lepsza tylko nad tym, czy isset jest szybszy od if($x)...
Podsumowanie:
Owszem jest szybszy, ale w przypadku, gdy zmienna sprawdzana nie istnieje, a wolniejszy w przeciwnym wypadku. Pozostaje tylko kwestia tego co w danej sytuacji zachodzi czesciej.
A biorac juz pod uwage nie tylko szybkosc ale i 'lepszosc' danego rozwiazania wygrywa isset (badz empty), o czym ja od poczatku wiedzialem, tylko nie o to mi chodzilo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Cytat
Do tego dodam, powinno Ci sie spodobac, ze empty sprawdza tez czy tablica nie jest pusta... czyli ma wiecej zastosowan .

Oczywiscie, ze mi sie podoba.
Go to the top of the page
+Quote Post

Posty w temacie
- e-Gandalf   czy należy korzystać z notice i funkcji typu empty   8.07.2003, 21:34:10
- - FiDO   CytatSwoją drogą, za starych dobrych czasów, gdy u...   8.07.2003, 22:15:11
- - e-Gandalf   Co tu sie oszukiwac, przeciez na kazdym kroku, zwl...   8.07.2003, 22:22:08
- - DeyV   Bardzo ciekawy test. Szczerze mówiąc wydawało mi s...   8.07.2003, 22:52:38
- - FiDO   Cytat[...] Wynik ab -n 300 - Requests per second: ...   10.07.2003, 00:01:03
- - DeyV   co prawda ja pracuję z wyłączonymi notice, ale, ta...   10.07.2003, 00:13:08
- - e-Gandalf   CytatSprawdzilem to troche doglebniej i sie okazuj...   10.07.2003, 14:05:17
- - kurtz   Cytat...musze przyznac ze bardzo ladna wypowiedz. ...   10.07.2003, 14:20:56
- - FiDO   CytatDla ilu wynikow sprawdziles? Bo u mnie powodu...   11.07.2003, 21:33:42
- - e-Gandalf   Hmm... Nie! Nadal sie nie zgadzamy. Skoro tak sp...   12.07.2003, 01:11:06
- - FiDO   CytatHmm... Nie! Nadal sie nie zgadzamy. CytatWn...   12.07.2003, 01:56:13
- - e-Gandalf   CytatAle to byla walka isset'a z if($x) a tutaj do...   12.07.2003, 07:15:07
- - menic   To może małe podsumowanie bo dyskusja ciekawa Cho...   12.07.2003, 14:49:20
- - FiDO   CytatCytat A jak juz pisalem i mierzylem przy zalo...   12.07.2003, 15:58:34
- - cagrET   to ze E_ALL ^ E_NOTICE jest wolniejsze jest logicz...   14.07.2003, 16:59:35
- - e-Gandalf   Tak, jest to logiczne Tylko, ze logika nie zawsze...   14.07.2003, 23:24:41
- - robokator   He   27.07.2003, 14:30:25
- - FiDO   Re: He   27.07.2003, 20:32:59
- - DeyV   NIe jest to może post na poziomei PRO, ale... wart...   3.08.2003, 18:22:41
- - FiDO   Hmm, a mi sie zawsze wydawalo, ze jak jest registe...   3.08.2003, 20:13:59
- - DeyV   http://forum.php.pl/viewtopic.php?t=1465&h...ghlig...   4.08.2003, 08:05:15
- - FiDO   hmm, faktycznie... chociaz mi sie raczej nie zdarz...   4.08.2003, 08:27:44


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: 4.10.2025 - 21:18