Co to jest?
Jest to zbiór pytań, które pojawiają się co jakiś czas na temat składni w PHP. To jest także Wiki Wiki, więc wszyscy są zaproszeni do udziału w utrzymywaniu tej listy.
Dlaczego to?
Kiedyś trudno było znaleźć pytania dotyczące operatorów i innych tokenów składniowych.¹
Główną ideą jest posiadanie linków do istniejących pytań na temat przepełnienia stosu, więc łatwiej jest nam się do nich odwoływać, a nie kopiować treści z Podręcznika PHP.
Uwaga: od stycznia 2013 r. Przepełnienie stosu obsługuje znaki specjalne . Otocz wyszukiwane hasła cudzysłowami, np[php] "==" vs "==="
Co mam tu zrobić?
Jeśli ktoś Cię tu wskazał, ponieważ zadałeś takie pytanie, zapoznaj się ze szczególną składnią poniżej. Połączone strony podręcznika PHP wraz z połączonymi pytaniami prawdopodobnie odpowiedzą na twoje pytanie. Jeśli tak, zachęcamy do głosowania za odpowiedzią. Ta lista nie ma na celu zastąpienia pomocy udzielanej przez innych.
Lista
Jeśli Twojego konkretnego tokena nie ma na liście poniżej, możesz go znaleźć na Liście tokenów analizatora składni .
&
Operatory bitowe lub referencje
- Co oznacza uruchomienie funkcji PHP ze znakiem handlowego?
- Zrozumienie PHP i (ampersand, bitowy i) operatora
- Operator PHP i
- Różnica między & i && w PHP
- Co w PHP oznacza „&”?
- Co w tym przypadku oznacza „&”?
- Co oznacza znak „&” w PHP?
- Co oznacza ten podpis (&) w PHP?
- Jak działa operator „&” w funkcji PHP?
- Co oznacza & in & 2 w PHP?
- Kiedy powinienem użyć operatora bitowego?
- Czy kiedykolwiek trzeba używać znaku handlowego i znaku przed obiektem? (I $)
=&
Bibliografia
- Operator przypisania referencji w PHP, = &
- Co oznaczają operatory „= &” i „& =” w PHP?
- Co robią operatory „& =” i „= &”?
- Co oznacza = i oznacza w PHP?
- „AND” vs „&&” jako operator
- Różnica między & i && w PHP
- Czy jest jakaś różnica między operatorami „i” oraz „&&” w PHP?
- PHP - i / lub słowa kluczowe
- Co oznacza znak procentu w PHP?
- Co to jest operator PHP% i jak go używać w przykładach z prawdziwego świata?
- Jakie jest użycie symbolu @ w PHP?
- Symbol „At” przed nazwą zmiennej w PHP: @ $ _ POST
- Funkcje PHP i @funkcje
- Czy powinienem używać @ w kodzie PHP?
- Co oznacza @ w PHP?
- Kim są operatorzy PHP „?” i „:” zadzwonił i co oni robią?
- ?: operator („operator Elvisa”) w PHP
- Gdzie mogę przeczytać o warunkach wykonanych za pomocą „?” i „:” (dwukropek)?
- Korzystasz z PHP 5.3?: Operator
??
Operator zerowej koalescencji (od PHP 7)
?string
?int
?array
?bool
?float
Nullable return return return (od PHP 7.1)
:
Alternatywna składnia dla struktur kontrolnych , operator trójskładnikowy
::
Operator rozstrzygania zakresu
- Co oznaczają dwa dwukropki w PHP?
- Co oznacza nazwa tokena PHP T_PAAMAYIM_NEKUDOTAYIM?
- Jaka jest różnica między :: (podwójny dwukropek) i -> (strzałka) w PHP?
- Czym dokładnie są późne wiązania statyczne w PHP?
- static :: staticFunctionName ()
- Nieoczekiwany T_PAAMAYIM_NEKUDOTAYIM, oczekiwanie T_NS_Separator
- Jak nazywany jest operator PHP „->” i jak to powiedzieć, gdy odczytujesz kod na głos?
- Gdzie używamy operatora obiektowego „->” w PHP?
- Jaka jest różnica między :: (podwójny dwukropek) i -> (strzałka) w PHP?
- Co oznacza składnia PHP $ var1 -> $ var2?
- Co oznacza „->” w PHP?
=>
Tablice
- Co oznacza „=>” w PHP?
- Zastosowanie => w PHP
- Co oznacza $ k => $ v w foreach ($ ex jako $ k => $ v)?
- Co oznacza <<< END w PHP?
- Wyrażenie PHP <<< EOB
- Co w PHP oznacza „<<<”?
- Używanie <<< CON w PHP
- Jaka jest taka składnia w PHP?
- Czym różnią się operatory porównania równości PHP (== podwójne równe) i tożsamości (=== trzyosobowe)?
- PHP! = I == operatory
- 3 różne są równe
- Porównywanie typów i (ścisłe) większe / mniejsze niż w PHP
- Co znaczy „===”?
- Czym różnią się operatory porównania równości PHP (== podwójne równe) i tożsamości (=== trzyosobowe)?
- 3 różne są równe
- Porównywanie typów i (ścisłe) większe / mniejsze niż w PHP
- PHP! = I == operatory
- Czy jest różnica między! == i! = W PHP?
- porównanie,! == kontra! =
- Jaka jest różnica między <> a! =
- Operator PHP <>
- Operator PHP <>
- Jaka jest różnica między <> a! =
- Porównywanie typów i (ścisłe) większe / mniejsze niż w PHP
<=>
Operatory porównania (od PHP 7.0)
- Jaka jest różnica między | i || operatorzy?
- Co robi użycie pojedynczej rury? | W funkcji Argument Czy?
- Jaka jest różnica między | i || operatorzy?
- PHP - i / lub słowa kluczowe
- Co dokładnie robi || oznaczać?
- Zachowanie operatora lub w PHP
+
Operatory arytmetyczne , Operatorzy Array
+=
i -=
operatorzy przydziału
++
oraz --
operatory inkrementacji / dekrementacji
- Różnica między kropką a przecinkiem podczas łączenia z echo w porównaniu do powrotu?
- Co oznacza (kropka) zrobić w PHP?
- Co oznacza $$ (dolar dolara lub podwójny dolar) w PHP?
- co to jest „$$” w PHP
- Funkcja $ () i zmienna $$
[]
Tablice (krótka składnia od PHP 5.4)
- Tablice PHP ... Jakie jest znaczenie pustego nawiasu?
- Jakie jest znaczenie []
- Php array_push () vs myArray []
- Co oznacza [] podczas czytania z tablicy PHP?
- Skrót dla tablic: dosłowna
$var = []
pusta tablica
<?
Otwieranie i zamykanie tagów
...
Rozpakowywanie argumentów (od PHP 5.6)
**
Potęgowanie (od PHP 5.6)
#
Jednowierszowy komentarz w stylu powłoki
:?
Typy zwracanych wartości zerowych
/**
?$
zmiennej, ale$$
tylko do zmiennych. Uważam, że należy to gdzieś zmienić.Odpowiedzi:
Operatory inkrementacji / dekrementacji
++
operator przyrostowy--
operator dekrementacjiMogą iść przed zmienną lub po niej.
Jeśli zostanie wstawiona przed zmienną, operacja inkrementacji / dekrementacji jest wykonywana najpierw dla zmiennej, a następnie zwracany jest wynik. Jeśli wstawiona po zmiennej, zmienna jest najpierw zwracana, a następnie wykonywana jest operacja zwiększania / zmniejszania.
Na przykład:
Przykład na żywo
W powyższym przypadku
++$i
jest używana, ponieważ jest szybsza.$i++
miałby takie same wyniki.Wstępna inkrementacja jest nieco szybsza, ponieważ tak naprawdę inkrementuje zmienną, a następnie „zwraca” wynik. Post-inkrement tworzy specjalną zmienną, kopiuje tam wartość pierwszej zmiennej i dopiero po użyciu pierwszej zmiennej zastępuje jej wartość drugą.
Musisz jednak użyć
$apples--
, ponieważ najpierw chcesz wyświetlić bieżącą liczbę jabłek, a następnie odjąć jedno od niej.Możesz także zwiększać litery w PHP:
Po
z
osiągnięciuaa
jest następny i tak dalej.Stosy przepełnienia stosu:
źródło
Operator bitowy
Co to jest trochę Bit reprezentuje 1 lub 0. Zasadniczo WYŁ (0) i WŁĄCZ (1)
Co to jest bajt? Bajt składa się z 8 bitów, a najwyższa wartość bajtu to 255, co oznacza, że każdy bit jest ustawiony. Przyjrzymy się, dlaczego maksymalna wartość bajtu wynosi 255.
Ta reprezentacja 1 bajtu
1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255 (1 bajt)
Kilka przykładów lepszego zrozumienia
Operator „AND”:
&
Spowoduje to wyświetlenie liczby 8. Dlaczego? Zobaczmy, korzystając z naszego przykładu tabeli.
Więc możesz zobaczyć z tabeli, że jedynym wspólnym bitem jest 8 bitów.
Drugi przykład
Dwa wspólne bity to 32 i 4, które po zsumowaniu zwracają 36.
Operator „Lub”:
|
Spowoduje to wyświetlenie liczby 11. Dlaczego?
Zauważysz, że mamy ustawione 3 bity w kolumnach 8, 2 i 1. Dodaj te: 8 + 2 + 1 = 11.
źródło
and &
jest0 0 0 0 1 0 0 0
ior |
jest0 0 0 0 1 0 1 1
?<=>
Operator statku kosmicznegoDodano w PHP 7
Operator statku kosmicznego
<=>
to najnowszy operator porównania dodany w PHP 7. Jest to non-asocjacyjne operatorem, z tego samego pierwszeństwa operatorów równości (==
,!=
,===
,!==
). Ten operator pozwala na łatwiejsze trójstronne porównanie operandów po lewej i po prawej stronie.Operator skutkuje wyrażeniem liczby całkowitej:
0
gdy oba operandy są równe0
wtedy, gdy lewy operand jest mniejszy niż prawy operand0
wtedy, gdy lewy operand jest większy niż prawy operandna przykład
Dobrym praktycznym zastosowaniem użycia tego operatora byłoby wywołanie zwrotne typu porównawczego, które powinno zwrócić zero, ujemną lub dodatnią liczbę całkowitą na podstawie trójstronnego porównania dwóch wartości. Funkcja porównania została przekazana do
usort
jest jednym z takich przykładów.Przed PHP 7 pisałeś ...
Od PHP 7 możesz pisać ...
źródło
$a <=> $b
różni się$a - $b
$a - $b
działa na liczbach, ale nie na ciągi, obiekty ani tablice.$a - $b
nawet nie działa dla liczb; działa tylko dla liczb całkowitych . Nie działa dla liczb niecałkowitych, ponieważusort
rzutuje wartości zwracane przez funkcję komparatora naint
, co oznacza, że 0,5 zostaje rzutowane na 0, co oznacza, że dwie liczby z różnicą mniejszą niż 1, takie jak 4 i 4.6, mogą (w zależności na którym jeden jest przekazywany jako pierwszy argument funkcji porównawczej) niepoprawnie porównuj jako równy._
Alias dla gettext ()Znak podkreślenia „_” jak w in
_()
jest aliasemgettext()
funkcji.źródło
źródło
Stałe magiczne : chociaż nie są to tylko symbole, ale ważna część tej rodziny żetonów. Istnieje osiem magicznych stałych, które zmieniają się w zależności od miejsca ich użycia.
__LINE__
: Bieżący numer wiersza pliku.__FILE__
: Pełna ścieżka i nazwa pliku. Jeśli zostanie zastosowany w pliku dołączanym, zwracana jest nazwa dołączonego pliku. Od PHP 4.0.2__FILE__
zawsze zawiera bezwzględną ścieżkę z rozwiązanymi dowiązaniami symbolicznymi, podczas gdy w starszych wersjach zawierała ścieżkę względną w pewnych okolicznościach.__DIR__
: Katalog pliku. Jeśli zostanie zastosowany w pliku include, zwrócony zostanie katalog dołączonego pliku. Jest to równoważne zdirname(__FILE__)
. Ta nazwa katalogu nie ma ukośnika końcowego, chyba że jest to katalog główny. (Dodano w PHP 5.3.0.)__FUNCTION__
: Nazwa funkcji. (Dodano w PHP 4.3.0) Od wersji PHP 5 ta stała zwraca nazwę funkcji tak, jak została zadeklarowana (wielkość liter ma znaczenie). W PHP 4 jego wartość jest zawsze pisana małymi literami.__CLASS__
: Nazwa klasy. (Dodano w PHP 4.3.0) Od PHP 5 ta stała zwraca nazwę klasy w takiej postaci, w jakiej została zadeklarowana (wielkość liter ma znaczenie). W PHP 4 jego wartość jest zawsze pisana małymi literami. Nazwa klasy obejmuje przestrzeń nazw, w której została zadeklarowana (npFoo\Bar
.). Zauważ, że od PHP 5.4__CLASS__
działa również w cechach. W przypadku metody cechy__CLASS__
jest nazwą klasy, w której ta cecha jest używana.__TRAIT__
: Nazwa cechy. (Dodano w PHP 5.4.0) Od PHP 5.4 ta stała zwraca cechę taką, jaka została zadeklarowana (z rozróżnianiem wielkości liter). Nazwa cechy obejmuje przestrzeń nazw, w której została zadeklarowana (npFoo\Bar
.).__METHOD__
: Nazwa metody klasy. (Dodano w PHP 5.0.0) Nazwa metody jest zwracana tak, jak została zadeklarowana (rozróżniana jest wielkość liter).__NAMESPACE__
: Nazwa bieżącej przestrzeni nazw (z rozróżnianiem wielkości liter). Stała ta jest zdefiniowana w czasie kompilacji (Dodano w PHP 5.3.0).Źródło
źródło
Wpisz Operatory
instanceof
służy do ustalenia, czy zmienna PHP jest instancją obiektu określonej klasy.Powyższy przykład wyświetli:
Powód: Powyższy przykład
$a
jest obiektem,mclass
więc używaj tylkomclass
danych, których nie masclass
Przykład z dziedziczeniem
Powyższy przykład wyświetli:
Przykład z klonem
Powyższy przykład wyświetli:
źródło
Przegląd operatorów w PHP :
Operatory logiczne:
Operatory porównania:
Operatory arytmetyczne:
Operatory inkrementacji / dekrementacji:
Operatory bitowe:
Operatory strunowe:
Operatory macierzy:
Operatorzy przydziału:
Uwaga
and
operator ior
operator mają niższy priorytet niż operator przypisania=
.Oznacza to, że
$a = true and false;
jest to równoważne z($a = true) and false
.W większości przypadków prawdopodobnie będziesz chciał używać
&&
i||
, które zachowują się w sposób znany z języków takich jak C, Java lub JavaScript.źródło
$a ?? $c
, mówi, że jest taki sam jak$a ? $a : $c
, ale operator trójskładnikowy sprawdza, czy wartość jest prawdziwa, z drugiej strony, zerowanie koalescencyjne sprawdza wartości zerowe, więc jeśli $ a wynosi 0, otrzymasz 0 (ponieważ 0 to nie zero), na przykład jeśli masz:$a=0; $c=5;
następnie$a?$a:$c
zwraca 5, a$a??$c
zwraca 0.Operator statku kosmicznego
<=>
(dodano w PHP 7)Przykłady
<=>
operatora statku kosmicznego (PHP 7, Źródło: PHP Manual):Liczby całkowite, zmiennoprzecinkowe, ciągi, tablice i obiekty do trójstronnego porównywania zmiennych.
źródło
{}
Nawiasy klamroweI kilka słów o ostatnim poście
źródło
Zerowy operator koalescencyjny (??)
Ten operator został dodany w PHP 7.0 dla typowego przypadku konieczności używania operatora trójskładnikowego w połączeniu z
isset()
. Zwraca swój pierwszy operand, jeśli istnieje i nie istniejeNULL
; w przeciwnym razie zwraca drugi operand.źródło
Ciągi PHP: Ciągi PHP można określić na cztery sposoby, a nie tylko na dwa sposoby:
1) Ciągi pojedynczych cytatów:
2) Ciągi podwójnych cytatów:
3) Heredoc:
4) Nowdoc (od PHP 5.3.0):
źródło
PYTANIE:
Co
=>
znaczyODPOWIEDŹ:
=>
To symbol, którego ludzie postanowiliśmy użyć do rozdzielenia"Key" => "Value"
par w tablicach asocjacyjnych.OPRACOWYWANIE:
Aby to zrozumieć, musimy wiedzieć, jakie są tablice asocjacyjne. Pierwszą rzeczą, która pojawia się, gdy konwencjonalny programista myśli o tablicy ( w PHP ), byłoby coś podobnego do:
Gdybyśmy chcieli wywołać tablicę w późniejszej części kodu, moglibyśmy zrobić:
Na razie w porządku. Jednak, jako ludzie, możemy mieć trudności z zapamiętaniem, że indeks
[0]
tablicy to wartość z roku 2016, indeks[1]
tablicy to pozdrowienia , a indeks[2]
tablicy to prosta liczba całkowita . Alternatywą, którą wówczas mielibyśmy, jest użycie tak zwanego Tablicy asocjacyjnej . Tablica asocjacyjna ma kilka różnic w porównaniu z tablicą sekwencyjną ( tak jak w poprzednich przypadkach, ponieważ zwiększają indeks stosowany w określonej sekwencji, zwiększając o 1 dla każdej kolejnej wartości ).Różnice ( między tablicą sekwencyjną i asocjacyjną ):
Podczas deklaracji tablicy asocjacyjnej nie tylko zawierasz to,
value
co chcesz umieścić w tablicy, ale także umieszczasz wartość indeksu (zwanąkey
), której chcesz użyć podczas wywoływania tablicy w późniejszych częściach kod. Poniższa składnia jest używana podczas To oświadczenie:"key" => "value"
.Podczas korzystania z tablicy asocjacyjnej
key
wartość zostanie następnie umieszczona w indeksie tablicy w celu pobrania żądanegovalue
.Na przykład:
A teraz, aby otrzymać takie same dane wyjściowe, jak poprzednio,
key
wartość będzie używana w indeksie tablic:PUNKT KOŃCOWY:
Tak więc z powyższego przykładu dość łatwo zauważyć, że
=>
symbol jest używany do wyrażenia relacji tablicy asocjacyjnej między każdą zkey
ivalue
parami w tablicy PODCZAS inicjacji wartości w tablicy.źródło
Pytanie :
Co w PHP oznacza „&”?
Operator PHP i
Ułatwia życie, gdy się do niego przyzwyczaimy (dokładnie sprawdź przykład poniżej)
i zwykle sprawdza bity ustawione zarówno w $ a, jak i $ b.
Tak więc za tym wszystkim stoi gra bitowego operatora i bitów.
Jednym z użytecznych przypadków są proste konfiguracje, takie jak podaj poniżej, więc w jednym polu liczby całkowitej można zapisać tysiące kombinacji.
Większość ludzi już czytała dokumenty, ale nie polegała na prawdziwym przypadku użycia tych bitowych operatorów.
Przykład, że pokochasz
źródło
==
służy do sprawdzania równości bez uwzględniania zmiennych typu danych===
służy do sprawdzania równości zarówno wartości zmiennej, jak i typu danychPrzykład
$a = 5
if ($a == 5)
- oceni prawdęif ($a == '5')
- oceni prawdę, ponieważ porównując obie wartości PHP wewnętrznie przekształca tę wartość ciągu na liczbę całkowitą, a następnie porównuje obie wartościif ($a === 5)
- oceni prawdęif ($a === '5')
- oceni na false, ponieważ wartość wynosi 5, ale ta wartość 5 nie jest liczbą całkowitą.źródło
Operator zerowej koalescencji „??” (Dodano w PHP 7)
Nie jest to najbardziej chwytliwa nazwa dla operatora, ale PHP 7 przynosi raczej poręczną zerową koalescencję, więc pomyślałem, że podzielę się przykładem.
W PHP 5 mamy już operatora trójskładnikowego, który testuje wartość, a następnie zwraca drugi element, jeśli zwraca true, a trzeci, jeśli nie:
Istnieje również skrót, który pozwala pominąć drugi element, jeśli jest taki sam jak pierwszy: echo $ count?: 10; // wyprowadza również 10
W PHP 7 otrzymujemy dodatkowo ?? operator, który zamiast wskazywać na ekstremalne zamieszanie, w jaki sposób zwykle używałbym razem dwóch znaków zapytania, zamiast tego pozwala nam połączyć łańcuch wartości. Czytając od lewej do prawej, pierwszą wartością, która istnieje i nie jest pusta, jest wartość, która zostanie zwrócona.
Ta konstrukcja jest przydatna do nadawania priorytetu jednej lub większej liczbie wartości, być może pochodzących z danych wprowadzonych przez użytkownika lub istniejącej konfiguracji, i bezpiecznie powraca do wartości domyślnych, jeśli takiej konfiguracji brakuje. To trochę mała funkcja, ale wiem, że będę z niej korzystać, gdy tylko moje aplikacje zaktualizują się do PHP 7.
źródło
Deklaracja zerowego typu zwrotu
PHP 7 dodaje obsługę deklaracji typu zwrotu. Podobnie jak deklaracje typu argumentu, deklaracje typu zwracanego określają typ wartości, która zostanie zwrócona z funkcji. Te same typy są dostępne dla deklaracji typu zwracanego, jak dla deklaracji typu argumentu.
Ścisłe pisanie ma również wpływ na deklaracje typu zwrotu. W domyślnym trybie słabym zwrócone wartości zostaną wymuszone na prawidłowy typ, jeśli nie są już tego typu. W trybie silnym zwracana wartość musi być poprawnego typu, w przeciwnym razie zostanie wygenerowany błąd typu Błąd.
Począwszy od PHP 7.1.0, zwracane wartości można oznaczyć jako zerowalne, poprzedzając nazwę typu znakiem zapytania (?). Oznacza to, że funkcja zwraca albo określony typ, albo NULL.
Źródło
źródło
Three DOTS jako Splat Operator (...) (od PHP 5.6)
PHP ma operator „...” (trzy kropki), który jest nazywany Splat Operator. Służy do przekazywania dowolnej liczby parametrów w funkcji, a ten typ funkcji nazywa się funkcjami Variadic. Weźmy przykłady użycia „...” (trzy kropki).
Każdy argument funkcji calcNumbers () przechodzi przez $ params jako tablicę, gdy używa się „…”.
Istnieje wiele różnych sposobów korzystania z operatora „…”. Poniżej kilka przykładów:
źródło