php – podstawy i założenia

Każdy zapis w języku php musi zaczynać się od otwarcia < ?php oraz na samym końcu zamknięcia ?>.
Wyjątkiem są dokumenty pisane w czystym php (bez dodatku HTML czy innych języków), wtedy kiedy mamy plik np. page.php wprowadzamy pierwszy, otwierający znacznik php ale już nie dajemy zamykającego na końcu dokumentu.

Używając średnika ; na końcu każdej instrukcji dajemy znać że to właśnie jej koniec.

Komentarze

  • jednolonikowy oznaczamy poprzez //
  • wielolinikowy zamykamy w /* ...text... */

Zmienne – Variable

Zmienna, technicznie ujmując,  to lokalizacja pamięci wewnątrz naszej aplikacji, która przechowuje pewnego rodzaju dane, więc kiedy odwołujesz się do zmiennej przez jej nazwę 'pobierasz’ dane w niej przechowywane.

Deklarowanie i odwoływanie się do zmiennej w php odbywa się za pomocą znaku $, po którym podajemy nazwę, która odnosi się do zawartości jaką przypiszemy zmiennej.

Konwencja nazewnictwa pozwala nazwę zacząć od litery (zazwyczaj zaczynamy od małej, a każdy kolejny wyraz w nazwie zaczynamy od dużej, czyli notacja camelCase) lub znaku dolnego podkreślenia _

Jako kolejne znaki nazwy zmiennej mogą pojawiać się cyfry i ponownie znak dolnego podkreślenia

$myName = 'Agnieszka’;

Typy danych skalarne

ten typ danych zwiera pojedynczą wartość

  • string – ciągi tekstowe, wprowadzamy je w cudzysłowiu pojedynczym lub podwójnym – 'some text’ lub „some text”
  • integer – liczby całkowite
  • float – liczby dziesiętne, czyli z wartościami po przecinku
  • boolean – wartość logiczna, może zawierać jedną z dwóch wartości prawda (true, 1) lub fałsz (false, 0)

Typy danych – inne

  • array – tablice, które posiadają w sobie wiele wartości danych (które mogą być różnych typów), nie jedną wartość jak typy powyżej, definiowane poprzez użycie słowa array i nawiasy okrągłe $fruits = array("banana", "pineapple", "orange", "grapefruit", "grapes"); lub poprzez same nawiasy kwadratowe $fruits2 = ["banana", "pineapple", "orange", "grapefruit", "grapes"];
  • objects – tworzony na podstawie class, zawierający również wiele wartości w sobie (które mogą być różnych typów),

Kiedy nie zdefiniujemy wartości danej zmiennej, ale chcemy zdefiniować jej typ, wystarczy zapisać ją z domyślny wartościami:

  • $string = „”;
  • $integer = 0;
  • $float = 0;
  • $boolean  = false;
  • $array = [];
  • $object = null;

Pamiętaj zawsze inicializuj zmienną i przypisuj jej domyślną wartość jeśli nie masz od początku zadeklarowanej jej konkretnej wartości.

Type declarations a dokładnie type hinting

Deklarujemy typ zmiennej aby mieć pewność, że przekazywany jest właściwy typ danych wewnątrz funkcji/metod. Pozwala to wyświetlić błąd, jeśli podany zostanie niewłaściwy typ. Działa z:

  • class/interface names
  • self (używany do odwołania się do tej samej class)
  • array
  • callable
  • bool
  • float
  • int
  • string
  • iterable
  • object

Deklarujemy je poprzez podanie przed nazwą zamiennej w nawiasach kwadratowych: public function setName(string $name) {}

Co ważne ta linika musi być zadeklarowana jako pierwsza!

Predefined, built-in variables

Zmienne istniejące w samym języku PHP, zwane również super global, co oznacza że zawsze mamy do nich dostęp, nie zależnie od zakresu (scope).

Gdy chcemy zdefiniować zmienną globalną używamy znaku $ po nim dolnego podkreślenia i następnie cała nazwę piszemy drukowanymi literami:

  • $_SERVER["DOCUMENT_ROOT"]
  • $_SERVER["SERVER_NAME"]
  • $_SERVER["REQUEST_METHOD"]
  • $_GET["name"] – dzięki temu możemy pobrać dane które są wyświetlone w naszym url po znaku ? przykładowo index.php?name=aga i wtedy $_GET[„name”] zwraca nam: aga, kiedy zamieszczamy dane metodą get zostają one dodane do adresu url widocznego w oknie przeglądarki, co nie jest najlepsza praktyką, bo każdy może je zobaczyć ;)
  • $_POST["name"]
  • $_REQUEST["name"] – ta metoda wykorzystuje metody: get, post, cookies kiedy ma wyświetlić dane na stronie, ale z powodu ze nigdy nie wiesz z której metody skorzysta z punktu widzenia bezpieczeństwa nie jest zalecane jej stosowanie
  • $_FILES["name"] – pobiera dane o pliku na serwerze, takich jak jego rozmiar, nazwa, rozszerzenie pliku,
  • $_COOKIE["name"] – czyli mały plik, który twój serwer osadza na komputerze użytkownika, co pozwala nam na osadzenie lub pobranie tych informacji
  • $_SESION["name"] – pozwala na osadzanie i pobranie informacji w sesji przeglądarki, czyli dostępnych do zamknięcia przeglądarki co zamyka/kończy sesję
  • $_ENV[] – tak zwane zmienne środowiskowe, to bardzo wrażliwe dane, które potrzebujesz mieć w konkretnym środowisku ale które nie powinny być nigdzie indziej dostępne

 

Różnica między GET a POST method

GET method – jeśli potrzebujesz pobrać dane z bazy danych lub dane które chcesz wyświetlić użytkownikowi

POST method – kiedy chcesz wysłać dane na stronę, lub do bazy danych, która jest bardziej chronioną metoda i dane nią przesyłane nie są widoczne

php strict mode

PHP jest w pewnym sensie luźnym i intuicyjnym językiem programowania, co czasami prowadzi do nie logicznych błędów, kiedy zamiast zmiennej która powinna być stringiem wprowadzimy intiger, php nie pokaże błędu bo tak, jakby, technicznie może tak być. Ale aby uniknąć takich nie domówień, wystarczy włączyć strict mode poprzez deklarację:


declare(strict_types = 1);

czyli wtedy, kiedy w funkcji zadeklarujemy że zmienna powinna być typu string, możemy przechwycić błąd kiedy uzytkownik będzie próbował wprowadzić inny typ danych:


public function setName(string $name) {
$this->name = $name;
}

public function getName() {
return $this->name;
}

  $person_1 = new Person_nws();

  try {
    $person_1->setName(33);
    echo $person_1->getName();
  } catch (TypeError $e) {
    echo 'Error: ' . $e->getMessage();
  }

Operatory

Przydają się do łączenia danych, operacji logicznych, obliczeń matematycznych.

  • string operator – znak kropki . – sposób na połączenie osobnych ciągów tekstowych (stringów), czyli konkatenacji (concatenate) danych jak $fullName = $firstName . ’ ’ . $lastName;
  • arithmetic operators – czyli matematyczne operatory pozwalające przeprowadzać obliczenia na cyfrach, takie jak:
    • znak + – dodawanie
    • znak – – odejmowanie
    • znak * – mnożenie
    • znak / dzielenie
    • znak % – modulo, reszta z dzielenia
    • znak ** – potęga
  • precedence (pierwszeństwo, priorytet) – czyli tak jak w matematyce operacje w nawiasie mają pierwszeństwo, zapis echo 1 + 3 * 2; zwróci 7, ale już zapis echo (1 + 3) * 2; zwróci 8
  • assignment operators – przypisanie wartości do zmiennej znakiem = równości, co nie oznacza równości tylko przypisanie, ale za pomocą tego operatora możemy zmieniać wartość
    • += zwiększa wartość zmiennej, $a += 4; daje nam wartość $a większą o 4 od jej podstawowej deklaracji
    • -=
    • *=
    • /=
  • comparison operators – operatory porównania
    • == – dwa znaki równości, sprawdzają czy jedna wartość jest równa drugiej, ale nie sprawdza jej typu danych, czyli 3 == '3′ zwróci true
    • === – trzy znaki równości, sprawdzają czy wartości są równe ale również pod kątem ich typu danych, czyli 3 === '3′ zwróci false
    • != – znak wykrzyknika i znak równości sprawdzają czy dane wartości są od siebie różne
    • !== – znak wykrzyknika i dwa znaki równości sprawdzają czy dane zmienne mają różne wartości lub różne typy danych
    • < – znak mniejszości sprawdza czy wartość po lewej stronie jest mniejsza niż ta po prawej
    • <= – mniejsze i równe
    • > – większe
    • >= większe i równe
    • <> – sprawdza czy wartości są od siebie różne
  • logical operators – operatory logiczne, najbardziej przydają się w warunkach if(), kiedy potrzebujemy sprawdzić parę warunków
    • && and – jeden i drugi warunek muszą być prawdziwe czyli zwracać true,
    • || or – jeden z warunków musi zwracać true
  • incrementing, decrementing operators – najczęściej wykorzystywane w różnego rodzaju pętlach
    • ++$a – dwa znaki plusa poprzedzające zmienną zwiększają jej wartość o 1, 1 jest dodawane do przed wykonaniem polecenia echo, czyli na monitorze widzimy wartość o 1 większą
    • –$a – dwa znaki minusa poprzedzające zmienną zmniejszają jej wartość o 1
    • $a++ – dwa znaki plusa będące za wartością zmiennej, również dodają wartość 1 do zmiennej ale po wykonaniu już polecenia, czyli w przypadku echo $a++; otrzymamy zwykłą wartość $2 ale już w kolejnym kroku będzie ona zwiekszona o 1
    • $a– – działa analogicznie do zwiększania po jej wywołaniu tylko zmniejsza wartość zmiennej

 

 

 

 

 

 

 

php

Hope this helps and happy coding :)

Zobacz jeszcze

Ciekawe tutoriale, snipety

Animated halftone patterns - by Ana...

php formularz

Po napisaniu formularza w html, i daniu metody POST, przed wykonaniem kodu w pliku docelowym, warto sprawdzić czy dane na pewno zostały przesłane formularzem, czy ktoś próbuje nadpisać...