Autor | Zpráva | ||
---|---|---|---|
m_stehlik Profil |
#1 · Zasláno: 17. 1. 2006, 14:39:53
Vsechny zdravim,
poradte nekdo prosim, jak secist vsechny prvky v array, kdyz pod php 3.0.18 neni podporavana funkce array_sum. Ladil jsem to pod php 4.3.3.0 tam je vse oka po nahrani na ostry server to hlasi: Fatal error: Call to unsupported or undefined function array_sum() in include/order_velko.inc.php. Jeste jedna otazka - umela tato verze mysql_fetch_assoc? |
||
m_stehlik Profil |
#2 · Zasláno: 17. 1. 2006, 15:06:41
Na prvni cast si odpovim sam:
for ($p = 0; $p < count($suma_cen); ++$p){ $sumar=$sumar+$suma_cen[$p]; } staci pouzit to co mam na krku.... |
||
Oswald Profil |
#3 · Zasláno: 17. 1. 2006, 15:07:50
poradte nekdo prosim, jak secist vsechny prvky v array, kdyz pod php 3.0.18 neni podporavana funkce array_sum.
Nejsem si jistý, jestli trojka umí podmíněné definice funkcí. Jeste jedna otazka - umela tato verze mysql_fetch_assoc? Skoro se mi chce říct rtfm :-) mysql_fetch_assoc (PHP 4 >= 4.0.3, PHP 5) |
||
error414 Profil |
#4 · Zasláno: 17. 1. 2006, 15:12:11
m_stehlik
To jeste nekde bezi php3??? |
||
jozob Profil |
#5 · Zasláno: 17. 1. 2006, 15:15:42
|
||
jozob Profil |
#6 · Zasláno: 17. 1. 2006, 15:16:23
Tak neskoro :-)
|
||
error414 Profil |
#7 · Zasláno: 17. 1. 2006, 15:20:50
foreach($pole as $hodnota)
je v php 3??? citace php.net PHP 4 introduced a foreach construct, much like Perl and some other languages. |
||
jozob Profil |
#8 · Zasláno: 17. 1. 2006, 15:32:07
error414
Takže ak nie je foreach v PHP3, v skripte sa dá nahradiť použitím cyklu for. if(!function_exists("array_sum")) |
||
error414 Profil |
#9 · Zasláno: 17. 1. 2006, 15:40:12
jozob
Ale tady to narazi na omezeni posloupnosti, prvky v poli nesmi byt prerusene. PHP3 sux |
||
jozob Profil |
#10 · Zasláno: 17. 1. 2006, 15:46:43 · Upravil/a: jozob
Zabudol som v tom kóde ešte jednu vec upraviť, takže takto:
if(!function_exists("array_sum")) |
||
Oswald Profil |
#11 · Zasláno: 17. 1. 2006, 15:50:29
jozob
Přidal bych tam ještě tu kontrolu, jestli je $hodnota číslo (viz ta moje sum_array), protože jakmile tam bude objekt nebo pole, tak: "Fatal error: Unsupported operand types in ...". |
||
error414 Profil |
#12 · Zasláno: 17. 1. 2006, 15:57:36
Oswald
jozob To je prace ladeni kodu pro php3, aspon vite jak to meli tezke |
||
jozob Profil |
#13 · Zasláno: 17. 1. 2006, 15:58:52
Oswald
Jasné. A mohli by sme tam pridať aj nenumerické stringy, to by malo ísť, nie?. Takže časť kódu, kde sa pričpočítava hodnota poľa k celkovému výsledku($sucet+=$pole[$i];) by sa mohla upraviť nasledovne: if(is_string($pole[$i]) || is_numeric($pole[$i])) |
||
jozob Profil |
#14 · Zasláno: 17. 1. 2006, 16:03:43
error414
Ale nerozumiem, prečo ešte niekde používajú PHP3. Veď trojka je stará takmer 9 rokov. (PHP3 bola nástupcom PHP/FI) |
||
Oswald Profil |
#15 · Zasláno: 17. 1. 2006, 16:13:38
jozob
Pokud ti jde o to, aby se přičetlo např. i $array[0] = '+5' (tedy číslo, ale string), tak to přes is_numeric projde (typ kontroluje is_int). |
||
jozob Profil |
#16 · Zasláno: 17. 1. 2006, 16:20:26 · Upravil/a: jozob
Oswald
Ja viem. Ale mne išlo o "nenumerické stringy" ako som uviedol, čiže napríklad: $array[0]="a". |
||
Oswald Profil |
#17 · Zasláno: 17. 1. 2006, 16:29:32
jozob
Aha, ale k čemu je (v tomto případě) dobré, přičítat string k číslu? |
||
jozob Profil |
#18 · Zasláno: 17. 1. 2006, 16:33:48
Oswald
Ani nemyslím že len string. Podmienka by sa mala dokonca upraviť, aby to zobralo všetko, okrem array a object. Funkcie musíš vyrábať tak, aby v nich prešlo čo najviac možných vstupov. V pôvodnej, v PHP4 definovanej funkcii array_sum() prejde všetko. |
||
Oswald Profil |
#19 · Zasláno: 17. 1. 2006, 17:10:42 · Upravil/a: Oswald
jozob
Máš pravdu. Naivně jsem si myslel, že array_sum zkonvertuje na čísla jenom ty stringy, na které by is_numeric vrátila true a že např. array_sum(array(5, 10, '1. kapitola')) vrátí 15... Funkcie musíš vyrábať tak, aby v nich prešlo čo najviac možných vstupov. Nemusím ;-) Vstupy se naopak snažím co nejvíce filtrovat. http://1.cz/index.php?q[]= http://jyxo.cz/s?q[]= |
||
m_stehlik Profil |
#20 · Zasláno: 17. 1. 2006, 17:12:43
Panove,
vsem dekuji za zajem a vycerpavajici informace. Tohle php jede ve spojeni s MySQL 4.1.13, jadro Linuxu 2.6 na jednom holandskem serveru. A pak ze jsme tady 100 let za opicema. Jinak co se tyka testovani jestli je promenna pole atd (dekuji jozobovi) to probehne hned na zacatku scriptu (tedy jeste spousta jinych testu), tohle je jen vypocet konecne hodnoty. Jeste jednou dekuji. Michal |
||
jozob Profil |
#21 · Zasláno: 17. 1. 2006, 18:37:50
Oswald
> "Nemusím ;-) Vstupy se naopak snažím co nejvíce filtrovat." - Vstupy môžeš filtrovať koľko chceš (na tom veľmi nezáleží), ale funkcie by si mal vytvárať (hodil by sa sem anglický výraz should) také, aby pracovali intuitívne, teda tak aby si bez nahladnutia do zdrojáku funkcie mohol s istotou predpokladať ako sa funkcia správa. m_stehlik > "jadro Linuxu 2.6" - Najnovšie jadro. |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0