Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

Konkatenacja w PHP

wtorek,

Konkatenacja w PHP

W programowaniu konkatenacja to łączenie kilku wyrażeń w jedno. Jest to typowa operacja wykonywana podczas prezentowania danych. Istnieje wiele sposobów na wykonywanie konkatenacji. Prezentowane przykłady to kilka spośród nich. Wybór optymalnego rozwiązania zależy od okoliczności.

We wszystkich przykładach generowana jest ta sama tabela HTML zawierająca testowe dane. Składnia jest bardzo podobna, w każdym przebiegu pętli foreach łączonych jest kilka łańcuchów znaków. Efekt działania każdego prezentowanego rozwiązania znajduje się na końcu artykułu.

Testowe dane

Wykorzystane w przykładach dane to struktura zawierająca dane na temat imienia i nazwiska w postaci tablicy dwuwymiarowej.

$names = [
  ['Henry','Franklin'],
  ['Tyler','Watts'],
  ['Laith','Mcfadden'],
  ['Brendan','Pratt'],
  ['Marsden','Warren'],
  ['Jackson','Harris'],
  ['Edan','Gordon'],
  ['Chadwick','Rojas'],
  ['Josiah','Henson'],
  ['Raymond','Gonzales']
];

Operator konkatenacji

W języku PHP operatorem konkatenacji jest kropka (.). Jego działanie prezentuje poniższy przykład. Jest to prawdopodobnie najpopularniejsze rozwiązanie.

echo '<table>';
foreach ($names as $name) {
	echo '<tr><td>' . $name[0] . '</td><td>' . $name[1] . '</td></tr>';
}
echo '</table>';

Funkcja printf

Kolejny sposób to skorzystanie z funkcji printf(). Jej pierwszym argumentem jest szablon zawierający pola do wypełnienia. W przykładzie wykorzystano dwa pola %s oznaczające łańcuch znaków. Oznacza to, że należy dostarczyć w ich miejsce wartości w postaci dwóch dodatkowych argumentów funkcji.

echo '<table>';
foreach ($names as $name) {
	printf('<tr><td>%s</td><td>%s</td></tr>', $name[0], $name[1]);
}
echo '</table>';

Funkcja vprintf

Funkcja vprintf to odmiana printf. Drugi argument to tablica zawierająca dane. Rozwiązanie jest dość wygodne w przypadku większej ilości pól. Ważne jest, aby zadbać o właściwą kolejność elementów tablicy.

echo '<table>';
foreach ($names as $name) {
	vprintf('<tr><td>%s</td><td>%s</td></tr>', $name);
}
echo '</table>';

Funkcja printf w połączeniu z implode

Optymalne i zwięzłe rozwiązanie w przypadku dużej ilości pól. Poniższy kod bez żadnej modyfikacji może obsłużyć np. 50 i więcej pól tabeli. Funkcja implode łączy elementy tablicy za pomocą łańcucha znaków podanego jako pierwszy argument. Ważne jest, aby zadbać o właściwą kolejność elementów tablicy.

echo '<table>';
foreach ($names as $name) {
	printf('<tr><td>%s</td></tr>', implode('</td><td>', $name));
}
echo '</table>';

Wyskakiwanie z kodu HTML

Kiedy interpreter PHP przetwarza plik, wyszukuje kodu PHP na podstawie jego znaczników. Wszystko poza nimi jest ignorowane przez parser. Dzięki tej własności można zagnieżdżać kod PHP w dowolnym dokumencie tak jak w poniższym przykładzie. Krótkie znaczniki (<?=) nie w każdej konfiguracji będą dostępne. Można je zastąpić standardowymi znacznikami (<?php) i instrukcją echo, jednak wtedy rozwiązanie nie będzie już tak zwięzłe.

<table>
<?php foreach ($names as $name) { ?>
  <tr>
  	  <td><?=$name[0]?></td>
  	  <td><?=$name[1]?></td>
  </tr>
<?php } ?> 
</table>
HenryFranklin
TylerWatts
LaithMcfadden
BrendanPratt
MarsdenWarren
JacksonHarris
EdanGordon
ChadwickRojas
JosiahHenson
RaymondGonzales
Artykuł: Sztuczna inteligencja w szkole i&nbsp;pracy

Sztuczna inteligencja w szkole i pracy

Artykuł: Plany zajęć w szkole dla dorosłych

Plany zajęć w szkole dla dorosłych

Artykuł: Terminy zjazdów w&nbsp;Liceum dla&nbsp;Dorosłych

Terminy zjazdów w Liceum dla Dorosłych

Artykuł: Test wiedzy o kampanii wrześniowej

Test wiedzy o kampanii wrześniowej

Artykuł: Pomniki kampanii wrześniowej w&nbsp;Polsce

Pomniki kampanii wrześniowej w Polsce

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły