Nowoczesne programowanie od dawna i skutecznie manipuluje zmiennymi bez typu. Typ zmiennej nie może być określony wcześniej i zmieniony podczas wykonywania programu.
Ta koncepcja stała się kluczowa dla ogólnego paradygmatu programowania. Na samym początku ery programowania języki o takiej samej pewności siebie wymagały od programisty wstępnego opisu zmiennych i upewnienia się, że nie podano im niczego nielegalnego. Fakt, że zmienna zmienia swój typ, ani programy, ani języki programowania nie miały pojęcia.
Funkcja PHP empty () jest odwrotnością funkcji isset () i ma pewne cechy szczególne. Jeśli nie ma zmiennej, to pierwsza funkcja reaguje pozytywnie na jej temat, a jej wynik jest prawdziwy, a drugi jest ujemny, czyli jego wartość jest fałszywa.
Z definicji isset () ma na celu sprawdzenie istnienia zmiennej. Nie ma znaczenia, co i jak zostało przypisane do zmiennej, najważniejsze jest to, że jest ona i nie jest niszczona przez funkcję unset (). Wynik funkcji isset () będzie dodatni - true. Ważne jest, aby pamiętać, że jeśli $ iVar = 0; wtedy isset ($ iVar) będzie prawdziwy, ale pusty ($ iVar) również będzie prawdziwy.
W pierwszym przypadku wynik oznacza, że zmienna istnieje, w drugim przypadku zmienna jest pusta, to znaczy wartość "0" w dowolnej formie, niezależnie od tego, czy jest to ciąg ("0"), czy liczba (ułamek - 0,0 lub liczba całkowita - 0) jest taka sama: pusty ($ iVar) będzie prawdziwy.
Praktyka pokazuje, że języki bez typu dają programistom więcej swobody, ale zakładają, że jego stosunek do pracy nad algorytmem jest bardziej odpowiedzialny.
PHP oferuje nowoczesną składnię, która utrzymuje dobrze ustaloną semantykę, ma niewiele błędów, ale wymaga uważnej uwagi. Na przykład wywołanie dowolnej funkcji wiąże się z określoną liczbą parametrów.
Przez wywołanie funkcji nie jest konieczne przekazywanie wszystkich parametrów, można przesłać tylko znaczną część z nich. Funkcja "musi" sprawdzić istnienie i istnienie wszystkich parametrów. Te, których brakuje lub mają złe wartości, musisz przywrócić normalny wygląd, przypisać im pożądane wartości.
W tym kontekście kluczowa jest funkcja PHP (). Wyrażenie:
= "1;2" + 20 $ a = "1; 2" + 20
przypisz wartość $ 21 do zmiennej $ a, ponieważ pierwsza część wyrażenia będzie reprezentowana jako 1, a druga 20.
Wynikiem będzie numer typu, a funkcja PHP pusta ($ a) będzie miała wynik - false, czyli zmienna $ a nie jest pusta.
W tym kontekście posiadający funkcję:
funcTest ($ a = 0, $ b = 20)
podczas dzwonienia:
$ res = funcTest ($ aVal, $ bVal)
będzie mieć pożądany, czyli wynik funkcji. A kiedy zadzwonisz:
tylko jeden parametr o wartości "$ aVal" wpada w treść funkcji. $ bVal 'i najprawdopodobniej ten parametr będzie interpretowany jako ciąg znaków.
Składnia języka ma wystarczającą liczbę konstrukcji i funkcji do pracy z obiektami i tablicami, ale z punktu widzenia sprawdzenia ich istnienia i obecności znaczenia, nie ma szczególnych różnic względem zmiennych.
PHP puste (tablica) jest równoważne wywołaniu pustego (zmienna prosta). Jednak w odniesieniu do obiektów istnieją bardzo istotne względy. Jeśli chodzi o sprawdzanie przedmiotu istnienia (isset), to pytanie nie ma sensu. Jeśli chodzi o funkcję PHP empty (), celowość jej użycia jest wątpliwa.
Zgodnie z logiką programowania obiektowego obiekt ma własną treść i własny zestaw metod. Tylko sam obiekt może powiedzieć puste lub nie, ale nie jest funkcją innej firmy, nawet jeśli jest zawarty w składni języka.
Na tej prostej, ale prawnej podstawie, każdy obiekt należy rozpatrywać w kontekście jego rozumienia "pustki". Na przykład implementacja obiektu "Lista pracowników" składa się z zapisów "Pracownik". Ale jeśli nie ma jednego pracownika, to na "liście pracowników" zawsze znajdują się opcje stanowisk prawdopodobnych pracowników.
Na jakim poziomie używasz tutaj funkcji pustego obiektu PHP? Na poziomie zatrudnienia wszystko istnieje, nawet jeśli nie ma jednego pracownika. Na poziomie "Pracownik" obiekt już tam jest, nawet jeśli nie jest całkowicie wypełniony. Nie do końca wypełniony obiekt można przypisać pustemu obiektowi. Nie ma żadnej korzyści dla niego z listy personelu.
W zależności od wybranego stylu programowania funkcje PHP empty () i isset () są bardzo ważne dla budowania bezpiecznego i niezawodnego algorytmu, ale dla obiektów nadal lepiej jest mieć własną wersję pustą (), określoną przez jej zawartość.