Pierwszy kod, Zapytanie o poprawność i optymalizacje |
Pierwszy kod, Zapytanie o poprawność i optymalizacje |
-lukasamd- |
11.06.2007, 16:23:39
Post
#1
|
Goście |
Witam,
niedawno nie miałem dostępu do internetu i postanowiłem zajrzeć do jakiejś książeczki o PHP którą u siebie znalazłem. Skorzystałem z PSPada i serwera Apache który postawiłem u mnie aby sprawdzić czy kod który napisałem działa. Na początku miało to być liczenie potęg liczby 2 (od 2^1 do 2^10), w tracie robienia pojąłem nieco o co chodzi i nieco rozbudowałem skrypt i teraz wygląda on tak:
Chciałbym się zapytać czy jest on poprawny i czy działa w sposób optymalny - to mój pierwszy skrypt i chciałbym aby był jak najbardziej dopracowany a IMO działa on dobrze, z związku z tym mam pytanka. 1. Liczby po pobraniu z formularza są zapisywane jako dane typu STRING - przez warunek if($liczba<>0) nie da się wyliczać dla 0 ale także dla znaków typu: "A", "B", "C", "D" itp. co jest mi na rękę. Czy to można uznać to za rozwiązanie poprawne czy lepeij dokonać konwersji na typ integer poprzez intval($liczba)? 2. Czy w skrypcie dobrze użyłem apostrofy i cudzysłowy? Wiem że różnica jest kolosalna i ważna dla optymalizacji skryptu. |
|
|
11.06.2007, 16:37:03
Post
#2
|
|
Grupa: Zarejestrowani Postów: 504 Pomógł: 2 Dołączył: 31.03.2006 Skąd: Londyn Ostrzeżenie: (0%) |
Hej,
Skrypt wydaje sie ok, apostrofy tez, aczkolwiek moze warto zapoznac sie z manualem juz teraz pow() zrobi to co chciales napewno szybciej, pozostaje jedynie dopisac otoczke Co do filtrowania parametrow, to zalezy od specyfikacji i zalozen projektu nad ktorym pracujesz. Jesli zalozenie jest takie (woje, klienta etc) ze ma to byc konwertowane i wyliczane to konwertowac, ja ma byc zgloszony blad to zglaszac I pomysl sobie co bedzi ejesli wprowadze wykladnik mniejszy od zera ? jak wiadomo podstawa powinna byc spotegowana a wynik przedstawiony jako jej odwrotnosc (<- to chyba dobry keyword prawda ?) ogolnie 1/n gdzie n to podstawa do potegi. -------------------- "Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"
|
|
|
-lukasamd- |
12.06.2007, 15:12:07
Post
#3
|
Goście |
pow() zrobi to co chciales napewno szybciej, pozostaje jedynie dopisac otoczke Hehehe a ja jak głupi ciągle zastanawiałem się dlaczego nie działa kombinacja $liczba^$potega No cóż... na błędach człowiek się uczy EDIT: Zmodyfikowałem kod i teraz wygląda to tak, liczy i dla potęg dodatnich i dla ujemnych choć w tym drugim wypadku w formie np. 4^-1 = 0.25
Jeszcze zmienię bo chyba jednak lepeij będzie gdy będzie pokazywał 1/n albo zrobię aby pokazywał obie formy (jeszcze nie jestem pewien). Co do komunikatu - nad tym też jeszcze popracuję. Zmodyfikowałem dzisiaj kod aby usunąć niepotrzebne 2 pętle które były w poprzedniej wersji i dołożyłem pokazywanie minusowych potęg jako 1/n. Zmieniłem także zapis na nieco krótszy ponieważ sądzę że przy istniejących pętlach nie musiałem używać kilka razy funkcji echo(), postanowiłem połączyć napisy.
Zadowolenie z tego że to napisałem i że działa jest niesamowite Ten post edytował lukasamd 11.06.2007, 17:13:12 |
|
|
12.06.2007, 15:51:37
Post
#4
|
|
Grupa: Zarejestrowani Postów: 504 Pomógł: 2 Dołączył: 31.03.2006 Skąd: Londyn Ostrzeżenie: (0%) |
No to teraz zrob sobie z tego funckje. DLa treningu. I jeszcze tylko przyczepilbym sie do nazw zmiennych. Sprobuj tak ponazywac zmienne zeby od razu bylo wiadomo co one przechowuja, czyli jak np zamiast $poteki mozna by zmienic na $iWykladnik, a $liczba na $iPodstawa mysle ze to bardziej rpzejrzyste. I jak widac jestem zwolennikiem notacji wegierskiej, co za tym idzie nazwy zmiennych zaczynaja sie jedna literka okreslajaca jej tym u mnie:
i - integer, s- string, o - object, m - mixed a - array, r - resource A pozniej to juz NormalnieCamelCaseZebyLadnieByloWidacCoIJak. Pozdrawiam. -------------------- "Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"
|
|
|
-lukasamd- |
12.06.2007, 20:12:06
Post
#5
|
Goście |
Nie wiem czy o to dokładnie chodziło ale w funkcjach i działając wygląda u mnie teraz tak:
Ten post edytował lukasamd 12.06.2007, 20:13:47 |
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 16:42 |