![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 2 Dołączył: 27.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Czy wyrażenia logiczne w PHP są wykonywane leniwie? Sprawdziłem u siebie. Skrypt:
da w wyniku: IF(T i F): F wrunek niespelniony IF(T lub F): T warunek spelniony Czyli u mnie na localhoscie odpowiedz brzmi tak. Moje pytanie brzmi. 1) Czy to rzecz do zmienienia w konfiguracji serwera? 2) Czy to się zmieniało z wersji na wersję? (a w PHP zmienialy sie fundamentalne rzeczy, np. sposob przypisywania obiektów...) 3) Czy w manualu jasno piszą jak wykonują się wyrażenia logiczne w PHP? Pytam, bo dzięki leniwym wyrażeniom można pisać zwięźlej (oszczedzać na IFach) i optymalizować (funkcja dłuzej wykonujaca się wywoływana w odpowiednim miejscu), ale chiałbym wiedzieć czy kod będzie pewny, bo np sytuacja gdy: A() && B(), gdzie nieprawdziwość A pociąga crash systemu przy wywołaniu B przy nie leniwym wykonywaniu kodu bedzie katastrofą. |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
php robi "leniwie". Nic mi nie wiadomo by mozna bylo to zmienic.
ps: ale przy wymyslaniu nicka to naprawde mogles sie wysilic... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 2 Dołączył: 27.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Liczyłem na połajankę w stylu: "przecież czarno na białym napisali w tutorialu". (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Przejrzę jeszcze manual. Przy pobieznym przegladaniu nic nie znalazłem. Myslalem sobie, ze skoro przy przejsciu z PHP4 na 5 tak mocno zmieniono znaczenie strego kodu, to trzeba uważać. Choć z drugiej strony trudno mi sobie wyobrazić korzyści ze zmiany w przypadku obliczania wyrażeń...
Cytat(nospor) ps: ale przy wymyslaniu nicka to naprawde mogles sie wysilic... Ale skąd wiesz, ze się nie wysiliłem? Rozwazylem hax0rskie, imiona, pretensjonalne nicki zbudowane z imiona (np. Zbyszek83) pretensjoanlne typu php_warrior, sentymentalne (bohater ulubionej powieści), dowcipne (a' DELETE FROM USERS...), prowokacyjne (np. OjciecDyrektor), ozdobne (_-_-_-_), nic nie znaczące, np. nozpol itp. Przejście na programowanie webowe było dla mnie solidną zmianą (kilka nowych jezykow, inne wymagania, nowe protokoly) i pytanie "o co w tym wszytskim chodzi?" pojawiało się dość często, więc nawet jakas legende mam do tego nicku. Za stary jestem by się jarać "oryginalnymi" nickami. Ten post edytował ocochodzi 25.03.2008, 20:57:08 |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Nie tylko w php sie takie optymalizacje robi.
A przyklady masz w kazdym glupim tutorialu (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) (ale nie wspominaja o tym (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ):
i gdyby nie bylo leniwego wyznaczania, to bys za kazdym razem mial die() wykonywane. No a w manualu nei znalazlem, google tez nic mi nie pomoglo (pewnie trzeba by dluzej poszukac) A co do nicka: hehe |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 2 Dołączył: 27.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie tylko w php sie takie optymalizacje robi. Dlatego pytałem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Tylko, ze o ile pamietam to np. w jakims starym Pascalu ustawialo się opcje kompilacji w tym celu. Generalnie jak już się coś skompiluje i działa w okreslony sposób, to raczej sie nie zmieni. W PHP natomiast to leży sobie kod na serwerze i cholera wie co go bedzie za rok międlić. No cóż...jesli cała społeczność ufa utartym obyczajom, to mi to wystarcza. Dzięki za odpowiedzi i przepraszam za zjedzenie [PHP] w temacie watku. Nie mysleliscie na podzieleniu przedszkola na działy? Aż się prosi. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 00:08 |