Czasami zdarza mi się nadużywać dopełnień – padding

Wartość padding (podobnie zresztą jak margin) może przyjmować cztery wartości. Jednak zależnie od tego ile tych wartości ustawimy (bo równie dobrze możemy ustawić tylko jedną, tylko dwie lub tylko trzy) tak pojawi się dopełnienie. Zatem:
– jeśli ustawimy tylko jedną wartość, np:

padding: 10px

ustawi dopełnienie o wartości 10px ze wszystkich stron danego elementu.
– z kolei ustawienie dwóch wartości, np:

padding: 20px 5px

ustawi dopełnienie o wartości 20px z dołu i z góry elementu.
– ustawienie trzech wartości:

padding:5px 10px 15px

ustawi dopełnienie o wartości 5px z góry, 10px z lewej i prawej strony oraz 15px z dołu elementu
– natomiast jeśli ustawimy wszystkie cztery, to:

padding: 10px 5px 15px 20px

ustawi dopełnienie o wartości 10px z góry, 5px z prawej, 15px z dołu oraz 20px z lewej
Osobiście najczęściej używam ostatniej wersji, gdyż w niej najwygodniej dokonywać zmian. Równie dobrze jednak można używać wartości padding-top, padding-right, padding-bottom, padding-left (odpowiednio: margin-top, margin-right, margin-bottom, margin-left). Przydaje się to szczególnie wtedy, gdy potrzebujemy ustawić dopełnienie tylko z jednej konkretnej strony.

Funkcje sterowania przepływem

Funkcje te znajdują swoje zastosowanie szczególnie w pojedynczych zapytaniach, gdzie nie możemy utworzyć procedur. Na tą grupę składają się cztery konstrukcje – IF(), IFNULL(), NULLIF() oraz CASE.

Konstrukcja IF przyjmuje trzy parametry wejściowe. Przykład jej wykorzystania to:

SELECT IF(id < 0, 0, id) AS id, name FROM tabela

Działanie tego zapytania przedstawia się następująco - jeśli id będzie ujemne zamiast niego zostanie zwrócone 0, natomiast jeśli id będzie większe lub równe 0 to zostanie zwrócone ono samo. I tak dla tabeli postaci:

id name
2 AAAAAAAA
-2 BBBBBBBB
-3 CCCCCCCC
4 DDDDDDDD
6 EEEEEEEE

Otrzymamy tabelę postaci:

id name
2 AAAAAAAA
0 BBBBBBBB
0 CCCCCCCC
4 DDDDDDDD
6 EEEEEEEE

Konstrukcja IFNULL() przyjmuje dwa argumenty wejściowe. Przykład wykorzystania:

SELECT IFNULL (id, 0) AS id FROM tabela

Zatem jeśli id będzie równe NULL zostanie zwrócone 0, a jeśli nie będzie równe NULL zostanie zwrócone id. Dla tabeli postaci:

id name
NULL AAAAAAAA
2 BBBBBBBB
-3 CCCCCCCC
NULL DDDDDDDD
6 EEEEEEEE

otrzymamy:

id name
0 AAAAAAAA
2 BBBBBBBB
-3 CCCCCCCC
0 DDDDDDDD
6 EEEEEEEE

Konstrukcja NULLIF przyjmuje dwa parametry wejściowe. Przykładowo:

SELECT id, nr, NULLIF(id, nr) AS wynik FROM tabela

Konstrukcja ta zwróci NULL jeśli id i number będą równe, natomiast jeśli nie będą równe zwróci id. Przykładowo dla tablicy:

id nr
2 3
2 5
-3 -3
2 4
6 6

Otrzymamy:

id nr wynik
2 3 2
2 5 2
-3 -3 NULL
2 4 2
6 6 NULL

=NULL i !=NULL nie działa!

Gdy chcemy sprawdzić czy wartość jakiejś kolumny w danym rekordzie jest nieokreślona musimy użyć określonej składni zapytania. Dla wartości nieokreślonej nie działa to tak jak w przypadku zwykłych zapytań:

SELECT id FROM tabela WHERE id=2;

I nie zadziała coś podobnego jak:

SELECT tresc FROM tabela WHERE tresc=NULL;

Bądź:

SELECT tresc FROM tabela WHERE tresc!=NULL;

Jeśli chcemy wybrać wiersze z tabeli w których pole tresc jest nieokreślone użyjemy składni:

SELECT tresc FROM tabela WHERE tresc IS NULL;

Podobnie jeśli chcemy wybrać wiersze z tabeli w których pole tresc nie jest nieokreślone użyjemy składni:

SELECT tresc FROM tabela WHERE tresc IS NOT NULL;

Dostęp do poszczególnych znaków w stringu

Żeby uzyskać dostęp do poszczególnych znaków w stringu można użyć wyrażenia:

$txt = 'To jest przykład';
$przyklad = $txt{3};

W efekcie zmienna $przyklad będzie zawierać literę j.
Rzecz przydatna, gdy potrzebujemy przeanalizować string litera po literze bądź dokonać jakiś operacji na poszczególnych literach.

Bo zawsze zapominam – printf

Mimo, że PHP automatycznie nadaje odpowiednie typy zmiennym, przydaje się czasem funkcja umożliwiająca formatowanie liczb. Taką funkcją, jest znana programistom C++, funkcja printf. Przyjmuje ona na sposób formatowania oraz to co ma zostać sformatowane.

Przykłady:

$liczba = 12;

Wówczas aby liczbę sformatować jako binarną, piszemy:

printf("%b", $liczba);

Otrzymujemy w wyniku: 10

$liczba = 12;

Wówczas aby liczbę sformatować jako ósemkową, piszemy:

printf("%o", $liczba);

Otrzymujemy w wyniku: 14

$liczba = 123;

Wówczas aby liczbę sformatować jako szesnastkową, piszemy:

printf("%x", $liczba);

Otrzymujemy w wyniku: 7b

$liczba = 123;

Wówczas aby liczbę sformatować jako szesnastkową z użyciem dużych liter, piszemy:

printf("%X", $liczba);

Otrzymujemy w wyniku: 7B

$liczba = 69;

Aby otrzymać kod ASCII danej liczby, piszemy:

printf("%c", $liczba);

Otrzymujemy w wyniku: O (duża litera O)

$liczba = -10;

Aby sformatować liczbę jako liczbę ze znakiem, piszemy:

printf("%d", $liczba);

Otrzymujemy w wyniku: -10

$liczba = 10;

Aby sformatować liczbę jako liczbę bez znaku, piszemy:

printf("%u", $liczba);

Otrzymujemy w wyniku: 10

$liczba = 34.23132;

Aby sformatować liczbę jako liczbę zmiennoprzecinkową, piszemy:

printf("%f", $liczba);

Otrzymujemy w wyniku: 34.2313

Dodatkowo możemy w przypadku liczb zmiennoprzecinkowych określić ile miejsc po przecinku danej liczby ma być wyświetlane

printf("%.3f", $liczba);

Otrzymujemy w wyniku: 34.231