orson
18.04.2005, 20:43:46
witam ...
pytanie teoretyczne ... czy wystarczy type casting przy operacjach na zmiennych

np:
<?php
?>
by uzyc tego np. w for() ? wiadomo jak to nie array to bedzie pusty i for sie nie wykona ...pytam bo pisze aktualnie projekt i operuje na bardzo wielu zmiennych ktore moga byc lub nie np. typu array i juz sie platam w tych ifach ... czy to bezpieczne ? czy lepiej jednak sprawczac is_array()

pozdrawiam
nospor
19.04.2005, 07:40:07
Na mój gust to lepiej sprawdzaj is_array. Unikniesz niepotrzebnych błędów. Nawet jeśli teraz nie widzisz w tym problemu, uwierz mi, że z czasem się pojawią (wiem z doświadczenia )
orson
19.04.2005, 16:31:54
witam ...
ale jakich bledow

moze jakis przyklad ... bo narazie stosuje type cast i nie mam zadnych problemow ... i type casting jest chyba kapke wydajniejszy niz 15 000 is arrayow na funkcjie ...
pozdrawiam
dasko
19.04.2005, 20:20:24
Jeśli wszystkie zmienne będziesz traktował jako tablice - to wg mnie jest to całkowicie bezpieczne - (array)$var == array($var). Ale niestety - wtedy ta 'zwykla' zmienna będzie musiała wyglądać np tak: $var[0].
scanner
20.04.2005, 06:21:55
1500 razy is_array() ? I to w jednej pętli?
IMHO zacznij pisać od nowa, bo gdzieś popełniasz poważny błąd projektowy.
orson
20.04.2005, 17:15:36
witam ...
to jest skrypt ktory pobiera staty z serwisu z danego miesiaca [duzy serwis, naprawde duuuuuuuzy], w ostatni dzien miesiaca i potem przeksztalca je tak by zapisac do zbiorczych [z wielu tabel robi wpisy do tabel - dzien, miesiac, rok] ... te 15 000 to juz i tak po ogromnej optymalizacji ... poprzednik moj gdy opracowywal skrypt nie bral pod uwage duzego wzrostu odwiedzin i do niedawna bylo jeszcze 750 000 interacji w petli ... narazie sie sprawdza wiec zostane przy rzutowaniu ...
ps. nie ma tam 15 000 opearacji na bazach - wyjasniam dla pewnosci - samych zapytan jest okolo 2 000. co do wydajnosci - staty sa gromadzone na dedykowanym serwerze [ 2 proce i 4 gb ram], obciazenie nie przekracza 60-70 %, a cale obliczenia miesieczne wykonywane w nocy trwaja okolo 15 - 20 min.
pozdrawiam
hawk
20.04.2005, 19:22:25
Jeżeli wszystko, co nie jest tablicą, rzutuje się na pustą tablicę, to IMHO jest to bezpieczene. Co do wydajności, nie jestem pewny, ale wydaje mi się, że rzutowanie jest wolniejsze. Bo co tak naprawdę zrobi php?
- sprawdzi, czy zmienna nie jest tablicą
- jeżeli nie jest, zamieni na tablicę
- następnie musi wykonać np. array_key_exists na pustej tablicy, co też trochę zajmuje
Natomiast wygody pisania i przejrzystości kodu nie da się już zmierzyć.
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.