Articles

Nauka PHP: Concatenate Strings and Variables Efficiently – WPShout

Posted on

Nieco dziwny termin, który usłyszysz jak ludzie używają wokół PHP: „concatenate”. Wciąż pamiętam, kiedy po raz pierwszy usłyszałem to słowo, nie mając zielonego pojęcia, co ono oznacza. Okazało się, że jest to powszechne i użyteczne zadanie w PHP: połączyć dwa łańcuchy razem, tak aby otrzymać pojedynczy łańcuch lub coś, co możemy wyeksportować na ekran.

Dzisiaj zajmiemy się wszystkimi głównymi obszarami konkatenacji łańcuchów w PHP: jak to zrobić, dlaczego to zrobić, czym jest operator konkatenacji w PHP, oraz kilka minusów zbyt częstego wykonywania konkatenacji łańcuchów w PHP.

Zrozumieć konkatenację łańcuchów w PHP: Join Two Strings

Konkatenacji łańcuchów używamy do łączenia ciągów znaków w PHP

Więc budujemy dużo HTML w PHP. A nawet gdy tego nie robimy, często przetwarzamy tekst. Z tych powodów, często chcemy połączyć dwa różne dobrze, strings. (Mam tu na myśli konkretny typ danych, ciąg znaków, w przeciwieństwie do integer lub innych.)

Więc używamy „konkatenacji ciągów znaków” do łączenia rzeczy razem w PHP. Możemy jej użyć do umieszczenia liczby w łańcuchu znaków, lub jeszcze częściej do połączenia łańcucha znaków z innym lub innymi łańcuchami znaków.

Operator konkatenacji w PHP: .

Operatorem konkatenacji łańcuchów w PHP jest kropka. ..

Jeśli programowałeś w innym języku, być może doświadczyłeś użycia symbolu + (plus), aby połączyć dwa (lub więcej) ciągi razem. Tak na przykład działa konkatenacja łańcuchów w JavaScript. W PHP, zamiast tego używamy znaku . (kropka, lub kropka dziesiętna) aby osiągnąć konkatenację łańcuchów. Kiedy więc postawisz kropkę, ., lepiej niż dwa różne cytowane ciągi znaków, lub zmienną i ciąg znaków, lub zmienną i zmienną, wynikiem będzie pojedynczy ciąg znaków, który PHP będzie gotowy do wysłania (na przykład echo) lub do dalszego przetwarzania.

Z tego do czego jesteś przyzwyczajony w języku angielskim, operator konkatenacji w PHP będący . może wyglądać dziwnie. Ale obiecuję, że gdy już będziesz wiedział co się dzieje, przyzwyczaisz się do tego i będziesz czytał to całkiem płynnie.

Jak konkatenować ciągi znaków w PHP

W porządku, czas na konkrety. Oto trochę kodu, który pokazuje, jak konkatenacja w PHP wygląda w praktyce. Oto trzy różne sposoby, na jakie możemy echo połączyć ciąg „Hello World” w PHP:

echo "Hello World"; // outputs "Hello World"$hello = 'Hello';echo $hello.' World'; // outputs "Hello World"$world = 'World';$hello_world = $hello.' '.$world;echo $hello_world; // outputs "Hello World"

Powyższy kod jest głupi: dwa drugie przykłady są niepotrzebnie skomplikowane. Ale utrzymujemy je w prostocie, abyśmy mogli zapoznać się z koncepcjami, które są z tym związane.

Pierwsza linia naszego przykładowego kodu jest przykładem bardzo prostego użycia echo w PHP, aby pokazać ciąg znaków. Będziesz to robił, gdy będziesz chciał, aby tekst z „krainy PHP” pojawił się w HTML-u twojej strony. Wiemy, że ciąg "Hello World" jest „ciągiem”, ponieważ jest ograniczony podwójnymi (lub pojedynczymi) cudzysłowami.

Nasz następny blok najpierw definiuje jeden ciąg, po prostu słowo Hello, a następnie dodaje do niego ciąg World, zanim wyrzuci je na wyjście. W PHP, dołączanie ciągu do ciągu jest bardzo powszechne. Robimy to, aby umożliwić nam zdefiniowanie części ciągu dalej od miejsca, w którym zdecydujemy się go wyświetlić. (Często znacznie dalej niż w tym przykładzie.)

Na koniec nasz ostatni blok tworzy dwie nowe zmienne: słowo World, a następnie frazę Hello World jako pojedynczy ciąg znaków. Ten ostatni przykład daje nam zatem przykład PHP, który będzie łączył ciągi znaków z separatorem. W naszym przypadku separatorem jest właśnie spacja. Błędem, który często popełniam w kodzie PHP jest zapominanie o spacji, ale jest to błąd łatwy do naprawienia. Po prostu dodaj dodatkowy ciąg znaków ze spacją (lub spację do innego ciągu znaków, jeśli wolisz).

Połącz swoje moce PHP: Append Strings AND Variables

W powyższym kodzie, widzieliśmy wyraźne przykłady konkatenacji łańcuchów w PHP. Ale możemy używać PHP do łączenia innych typów zmiennych z ciągami znaków, w ramach ograniczeń. Te ograniczenia: nie możemy wykonywać konkatenacji złożonych typów danych, takich jak obiekty czy tablice w łańcuchy bez dodatkowej pracy.

Ale „prostsze” typy danych PHP, takie jak liczby całkowite i zmiennoprzecinkowe (ogólnie, liczby) są bardzo częstą rzeczą, którą widzimy konkatenowaną w PHP. Będzie to wyglądało mniej więcej tak:

$percentage = 12.1 + 9 + 41.21;echo 'Your final score: '.$percentage.' out of 100%.'; // outputs "Your final score: 62.31 out of 100%."$integer = 1 + 17;echo $integer.' centimeters in length'; // outputs "18 centimeters in length"

W obu przykładach, umieszczamy liczbę (a float w pierwszym przypadku, a integer w drugim) bezpośrednio w łańcuchu poprzez konkatenację. Ponieważ PHP wykona za nas „żonglerkę typami”, aby przekształcić tę liczbę w ciąg znaków, jesteśmy w stanie zrobić to szybko i łatwo. W PHP, dodawanie do łańcuchów za pomocą konkatenacji jest łatwe dla podstawowych typów z oczywistymi wersjami łańcuchowymi.

Interpolacja łańcuchów w PHP? Use Single or Double Quotes?

Tak więc rzeczą, której rzadko używam, ale którą bardzo dobrze jest zrozumieć jest interpolacja łańcuchów w PHP. To co mam na myśli (tak jak większość ludzi, którzy mogą to powiedzieć) przez „interpolację łańcuchów” to fakt, że osadzasz $variable w łańcuchu w PHP, i zostaje on natychmiast zastąpiony przez $variable’s underlying value. Tak więc wyglądałoby to coś w stylu:

$number = 4;echo "She has $number cars in her garage."; // outputs "She has 4 cars in her garage."echo "She has {$number} cars in her garage."; // outputs "She has 4 cars in her garage."

Kilka ważnych rzeczy na temat powyższego. Po pierwsze: obie instrukcje echo doprowadzą do wyniku „Ona ma 4 samochody w swoim garażu”. Po drugie, dzięki temu wiemy, że zawijające {} nie pokazują. Po trzecie, kluczowe jest to, że oba powyższe stwierdzenia i ciągi znaków używają podwójnych cudzysłowów: ", a nie pojedynczych cudzysłowów '. W PHP, musisz dopasować znak cudzysłowu otwierającego i zamykającego dla swoich ciągów znaków.

Ponadto, możesz, używając podwójnych cudzysłowów, pozwolić silnikowi PHP na interpolację zmiennej do niej. Tak więc moglibyśmy osiągnąć to samo z pojedynczymi cudzysłowami, tylko jeśli zrobilibyśmy:

$number = 4;echo 'She has '.$number.' cars in her garage.'; // outputs "She has 4 cars in her garage."

Tutaj używamy operatora konkatenacji PHP, . ponownie, zamiast polegać na interpolacji łańcuchów PHP. W obu tych opcjach jest dobre i złe rozwiązanie. I wszystkie trzy działają dobrze. Wydajność interpolacji łańcuchów na podwójnie cytowanych łańcuchach jest na tyle mała, że nie sądzę, że powinieneś się tym przejmować. Usłyszysz jednak, że ludzie zwracają uwagę na (prawdziwy) fakt, że trzeci przykład w tej sekcji jest (bardzo nieznacznie) szybszy.

An Odd-Ball One: .= Is a Concatenation Assignment Compounded in PHP

Na koniec, zobaczysz to czasami używane, i jest to bardzo istotne dla tematu. Możesz użyć kombinacji . i = zarówno jako przypisania jak i konkatenacji. Aby to lepiej zrozumieć, powróćmy do przykładu z wcześniejszych lat:

$hello = 'Hello';$world = 'World';$hello_world = $hello.' '.$world;echo $hello_world; // outputs "Hello World"

Nic nie zmieniłem w powyższym kodzie. Ale można napisać PHP, aby połączyć dwa ciągi znaków w zupełnie inny sposób. Wygląda to tak:

$output = 'Hello';$output .= ' ';$output .= 'World';echo $output; // outputs "Hello World"

Więc to co to robi to konkatenacja na końcu naszego $output ciągu spacji (), a następnie słowa World. Więc wynik jest taki, że otrzymujemy to samo dokładne wyjście. Tak więc efektywnie za każdym razem, gdy widzisz .=, jest to to samo, co $output = $output.$new_thing; lub podobne. To, czy podoba ci się, czy nie podoba ten przykład, jest kwestią osobistego gustu. Ale czytając kod innych ludzi, jestem pewien, że zobaczysz, że ludzie używają tego od czasu do czasu, więc dobrze jest zrozumieć ten aspekt konkatenacji w PHP.

Now Go Concatenate Your Strings, Thoughtfully

Zanim zakończę, krótkie ostrzeżenie: nauka „konkatenacji” łańcuchów w PHP jest ważna i bardzo cenna. Ale często jest to także znak, że robisz mniej wydajne rzeczy, niż powinieneś. Szablony (pliki, które po prostu zawierają HTML + już ułożone zmienne) są często lepszym rozwiązaniem dla większości rzeczy, które robisz, niż po prostu łączenie wielu ciągów sekwencji HTML i zmiennych wewnątrz, powiedzmy, pliku WordPressa functions.php.

To powiedziawszy, konkatenacja w PHP jest zabawną i ważną rzeczą do opanowania. Chociaż uważam, że powinno się jej używać oszczędnie, powiem też, że w ciągu tych kilkunastu lat, kiedy pisałem w PHP, prawdopodobnie nigdy nie było tygodnia, w którym nie korzystałem z mocy konkatenacji łańcuchów w PHP. Powodzenia!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *