Alternativa za PHP funkce – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Alternativa za PHP funkce – PHP – Fórum – Programujte.comAlternativa za PHP funkce – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Facedown
~ Anonymní uživatel
34 příspěvků
21. 7. 2014   #1
-
0
-

Ahoj, chtěl bych se zeptat, jestli někdo neznáte nějakou hezkou stránku, kde by byly vypsány alternativy za PHP funkce. Těmi alternativy myslím třeba toto:

(strlen($string) < 10);

//se dá nahradit

 !isset($string[10]);



is_array($array);

//se dá nahradit

$array === (array) $array;


//případně také

array_key_exists($klic, $array);
//za
isset($array[$klic]);

//......

Děkuji za odpověď :)

Nahlásit jako SPAM
IP: 94.113.36.–
Reklama
Reklama
Kit+11
Guru
22. 7. 2014   #2
-
0
-

#1 Facedown
V zájmu čitelnosti  programu je lepší takové hacky nedělat. Kromě toho nejsou ekvivalentní.

Nahlásit jako SPAM
IP: 46.174.37.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
2551 příspěvků
22. 7. 2014   #3
-
0
-

   

(strlen($string) < 10);
//se dá nahradit
 !isset($string[10]);
Strlen zjistuje delku retezce a porovnavas to dal < 10
Isset zjistuje existenci 10 prvku. Pokud je $string array, tak je to 10. prvek pole. kdyz je to to string, tak je to 10. pismeno. A kdyz je tam false, tak to vyhlasi error. A kdyz je undefined, tak to taky vyhlasi error.
Ale, isset by mohlo byt rychlejsi nez porovnavat <10.
Cili, pouziti toho nebo onoho plati za urcitych podminek a nelze tvrdit, ze je neco lepsi, kdyz ty podminky neznas, nemas presne definovane.

is_array($array);
//se dá nahradit
$array === (array) $array;
Tak tohle bych nedelal. Is_array by melo byt asi rychlejsi nez prevadet neco na array.

//případně také
array_key_exists($klic, $array);
//za
isset($array[$klic]);
Isset bude myslim opet rychlejsi.

Muzes zkusit do google = PHP Equivalent  code structure
Vetsinu z toho se da najit v manualu v prikladech od uzivatelu k dane funkci.
Pripadne muzes zkusit dat do fora dotaz na optimalizaci, kdyz soucasne zadas, co do funkce vstupuje a co ma z ni vyjit ven.

Nahlásit jako SPAM
IP: 2001:718:2601:258:fc19:70...–
Kit+11
Guru
22. 7. 2014   #4
-
0
-

#3 peter
Tady se na rychlost vůbec nehraje, protože je nepodstatná. Důležitá je čitelnost programu, proto je lepší použít takovou funkci nebo takový výraz, který lépe vystihuje požadovanou vlastnost.

Nahlásit jako SPAM
IP: 88.103.124.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Facedown
~ Anonymní uživatel
34 příspěvků
22. 7. 2014   #5
-
0
-

#3 peter
Druhé řešení by mělo být rychlejší, ale na to jsem se vůbec neptal. O tom, že to má své nevýhody vím. :) Na googlu pod tímto pojmem nic není a PHP user contributed notes se mi procházet zrovna nechce, když moc nevím co bych za co nehradil. Musel bych projet všechny funkce a to se mi moc nechce. 

Nahlásit jako SPAM
IP: 94.113.36.–
peter
~ Anonymní uživatel
2551 příspěvků
23. 7. 2014   #6
-
0
-

Kit - zalezi na tom :) Treba, kdyz mas import script 10MB xml do db a trva 30s nebo 180s, tak uz je to celkem podstatna zmena psat rychlejsi alternativu.

Facedown - Nevim, zda je nekde tabulka. Spoustu tech veci verim, ze mam v hlave (kdyz napises dotaz, ze to chces optimalizovat na rychlost, tak urcite si s tim par lidi pohraje a kod ti optimalizuje s tim, co vi nebo vyzkousi). Urcite bych se ale snazil pouzit zapis, ktery nejlepe odpovida tomu, co s tim potrebuji udelat.
is_array($array); -- prijde mi srozumitelnejsi nez ten druhy zapis
$array === (array) $array;
Muzes zkusit polozit dotaz na jakpsatweb.cz, pripadne prohledat forum. Myslim, ze jsem tam neco takoveho kdysi zahledl. Pripadne navrhni, at to pridaji do php-faq/ucebnice (spesl forum pod kategorii php). Ja tam mam treba ban, takze mi to pise Pristup zamitnut, protoze aktualni moderatori davaji radi ban stalym clenum za stejne prohresky, ktere delaji sami :)

Nahlásit jako SPAM
IP: 2001:718:2601:258:202a:1e...–
Kit+11
Guru
23. 7. 2014   #7
-
0
-

#6 peter
Promiň, ale import 10MB XML je na jeden řádek a trvá pod jednu sekundu. U toho nic rychlejšího nevymyslíš.

Nahlásit jako SPAM
IP: 147.229.242.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
2551 příspěvků
23. 7. 2014   #8
-
0
-

Mno, kdyz myslis :) Kdyz mas treba v xml nejaka pole a ty potrebujes jen nektera a jina potrebujes doplnit, tak tam musis mit php kod navic a nemuses pouzit jen import.

Nahlásit jako SPAM
IP: 2001:718:2601:258:202a:1e...–
Kit+11
Guru
23. 7. 2014   #9
-
0
-

#8 peter
Máš pravdu, v tom případě potřebuji 2 řádky PHP navíc. A protože v nich nemám cykly, ani nemusím hledat způsoby, jak to optimalizovat.

Nahlásit jako SPAM
IP: 147.229.242.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
2551 příspěvků
23. 7. 2014   #10
-
0
-

Bohuzel ti nemuzu prozradit konkretni kod. Pak bys videl, ze to tak snadne neni. Tam je treba podminka, ze ted zacina katerogie 1, ted kategorie 2, ... pak je ta, ze kdyz neni polozka vyplnena, tak tam dej to a ono. Jinou polozku prejmenuj, dalsi duplikuj s nejakou hodnotou. No, proste sileny php kod, ktery z toho nakonec udela insert dotaz a ulozi do souboru. Samotne soukani souboru do db je pak asi 5s.

Nahlásit jako SPAM
IP: 2001:718:2601:258:202a:1e...–
Kit+11
Guru
23. 7. 2014   #11
-
0
-

#10 peter
Zdá se, že neznáš XSLT a XPath. V tom je to hračka.

Nahlásit jako SPAM
IP: 88.102.104.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Lamicz
~ Anonymní uživatel
8 příspěvků
21. 8. 2014   #12
-
0
-

   

//případně také
array_key_exists($klic, $array);
//za
isset($array[$klic]);

Vyzkoušejte si to pokud $klic bude 0 ;)

Nahlásit jako SPAM
IP: 89.177.168.–
Lamicz
~ Anonymní uživatel
8 příspěvků
21. 8. 2014   #13
-
0
-

#12 Lamicz
Blbost - ta hodnota pod $klic bude 0 nebo treba null

Nahlásit jako SPAM
IP: 89.177.168.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 22 hostů

Podobná vlákna

Funkce PHP — založil Mixxy

PhP - Funkce — založil Dlak

Rámce a php funkce — založil matěj15

PHP GD a image funkce — založil Shaker

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý