Diskuze: x na 00x
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Změříš si délku stringu, podle toho kolik obsahuje znaků, tolik tam
přidáš nul. Tj. pokud obsahuje 1 znak, přidáš dvě nuly, pokud dvě, tak
jednu atd...
Počet znaků změříš pomocí:
$pocetZnaku = strlen($proměnáCislo);
Přidávání nul vyřešíš v switch. Tj:
switch ($pocetZnaku) {
case "1":
echo "00".$proměnáCislo;
case "2":
echo "0".$proměnáCislo;
case "3":
echo $proměnáCislo;
}
Pokud potřebuješ více znaků, jednoduše uprav switch.
Kdybys to měl dělat na 50000 znaků, tak budeš dělat jako otrok 50000
case?
Ano, pokud bych to měl dělat na více čísel, tak to zefektivním. Zeptal
se na několik málo čísel, takže nevím, proč bych měl server zatěžovat
zbytečnými výpočty.
EDIT:// O Satíkovo funkci jsem netušil. Zajímavé na co všechno jsou
dostupné funkce.
Určitě jde vytvořit string z 1 znaku o nějaké délce a bylo by to určitě rychlejší
než switchovat.
Ano, přiznávám, mohlo mě napadnout, že bude v tomto případě lepší využít str_pad. Moje chyba. I přesto, pokud se jedná o takto malý počet čísel, je jedno, jakou možnost využiješ. Plus v případě switch můžeš upravit, jaké znaky se přidají v jakém případě výrazně lehčí cestou. Dejme tomu, že potřebuješ, aby se při dvou existujících znacích v proměnné nepřidala 0 ale 1. Nebude lehčí si to jedno ze tří čísel ošetřit ve switchi?
řešil jsem to tak, že jsem převedl číslo na string a pak cyklem dopřídaval potřebný počet nul.
Jedno je to možná tobě, ale radši bych měl v kódu volání jedné funkce než nějakou "složitou" konstrukci, která je 5x delší.
Složitou? O co je přehledných 5 řádků složitější než jedna nesrozumitelně pojmenovaná funkce?
"O co je přehledných 5 řádků složitější než jedna nesrozumitelně pojmenovaná funkce?"
Funkce pro padding stringů jsou ve spoustě jazyků v defaultní knihovně a
určitě je při čtení cizího kódu pro mě příjemnější vidět jednu
celkem logicky pojmenovanou (i když pravda, že pojmenovávací konvence zrovna
v PHP jsou nestejnorodé) funkci než zkoumat, co asi dělá těch 5 řádků
kódu
ked chces pridat na zaciatok nulu, tak sa da napr. takto:
$cislo_int = 5;
$cislo_str = "0" . $cislo_int;
echo $cislo_str;
tu sda vyuziva spajanie retazcov a kedze jazyk PHP je netypovy, automaticky pri spajani retazcov si najskor prevedie numericku hodnotu na string a nasledne retazce spoja, cim vznikne nova hodnota, tentoraz uz typu string
Díky všem, už sem to vyřešil tou funkcí str_pad
Zobrazeno 13 zpráv z 13.