![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 368 Pomógł: 2 Dołączył: 23.09.2007 Ostrzeżenie: (60%) ![]() ![]() |
Chciałem zadać pytanie czy poprawne jest:
Ten post edytował poxrimex 5.01.2008, 08:34:02 -------------------- |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Empiryzm.
Czemu nie sprawdzisz? Już dawno miałbyś odpowiedź. A tak czekasz na odpowiedź na forum. Oczywiście, że to jest poprawne, poza błędami składni. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Najlepiej po prostu włączyć
![]()
Sprawa pierwsza - jakikolwiek ciąg tekstu, który może być obrobiony przez skrypt, musi być objęty cudzysłowami lub apostrofami*. Pierwsze są znacznie bardziej rozbudowane, bo oferują łatwą obsługę kodów sterujących ASCII, proste osadzanie zmiennych itd., ale mocno odbija się to na wydajności (jeśli korzystasz z tych opcji, przetworzenie trwa nawet 10x dłużej). Ponadto gdy w tekście masz dużo znaczków w stylu dolara, nawiasów klamrowych, można się pociąć, próbując je wyescape'ować tak, by ich PHP przypadkiem nie przetworzył, tylko wyświetlił. Osobiście korzystam z apostrof i łączę to z danymi kropką, a z cudzysłowów tylko, gdy są kody kontrolne ASCII do wyświetlenia. Zatem po poprawce 1 skrypt wygląda tak:
Teraz już zadziała, ale to jeszcze nie wszystko, co można w nim poprawić. Nikt nigdy nie mówił, że po "echo" musi być koniecznie zmienna. Nieprawda - może tam stać dowolne wyrażenie, w szczególności ciąg tekstowy. Tak więc jeśli tego napisu "Strona Szkoły Podstawowej" nie zamierzasz jakoś obrabiać rozmaitymi algorytmami, nie ma w ogóle sensu jego pakowanie do zmiennej. Piszemy od razu:
Klucz to zrozumienie, po co dany element jest w skrypcie. Jeśli wprowadzasz jakąś zmienną, powinieneś wiedzieć, jaki jest cel jej wprowadzenia. Jeżeli mimo najszczerszych chęci takiego celu znaleźć nie możesz, prawdopodobnie oznacza to, że zmienna ta nie jest potrzebna. Może być też sytuacja, że cel jest, ale bezsensowny. Oto przykład:
Sytuacja taka będzie OK tylko w jednym przypadku: w dalszej części skryptu potrzebujesz wszystkich trzech postaci tekstu z formularza: wersji surowej, wersji wyescape'owanej i wersji z zabezpieczonym HTML-em. Można powiedzieć, że przecież trzeba jakoś ten tekst między funkcjami przesłać. Fakt - trzeba, ale po diabła 100 zmiennych do przesłania jednej informacji?
Oczywiście rezultat będzie trochę inny, bo nadpisujemy tu sobie oryginalną wiadomość, ale jeżeli nam ona nie będzie potrzebna, to czemu nie? Jednak w ogóle po co tu jakąś zmienną stosować, skoro można bezpośrednio z funkcji do funkcji coś przesłać?
* - w teorii dopuszczalne jest pisanie pojedynczych słów bez cudzysłowów i apostrofów, ale interpreter sypie wtedy ostrzeżeniami. W każdym razie, najlepiej zapomnieć, że takie coś jest możliwe, przynajmniej na początku. -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 04:54 |