heredoc ו-nowdoc ב-PHP

הסבר זריז על שיטות מוכרות פחות להכריז על מחרוזות טקסט באמצעות PHP מגרסה 5.3 ומעלה.

כל מתכנת PHP מכיר את עניין המרכאות היחידות להכלת מחרוזת טקסט ב-PHP ועניין המרכאות הכפולות לתיאור הכלת מחרוזת טקסט עם משתנים ב-PHP.


<?php

$str = 'hello world';

$hello = 'hello';

$anotherString = "$hello world";

מעטים מכירים את heredoc ואת nowdoc שהתווסף ב-PHP 5.3. במאמר זה אסביר ואף אדגים את השימוש ב-heredoc ו-nowdoc.

heredoc זהה כמעט לחלוטין למרכאות כפולות, אך הוא הרבה יותר נוח כאשר מדובר בכמות רצינית של טקסט שבו יש מרכאות כפולות וגם מרכאות בודדות. מה שיפה בו הוא שגם אפשר להכניס משתנים. כלומר הוא מאד נוח להכנסת כל טקסט שהוא כולל משתנים וכולל מערכים ללא צורך להשתמש בסוגריים מסולסלות.

הנה דוגמא פשוטה:


<?php
$name  = 'Moshe';

$str = <<<ETC

Hello, $name,  whats up?

ETC;

print $str;

איך מפעילים את ה-heredoc? בוחרים שם כלשהו (לצורך העניין ETC) ומשתמשים בשלושה חצים בדיוק כמו בדוגמה לעיל. על מנת לסגור את ה-heredoc יש להוסיף את השם בלבד ונקודה םפסיק וזהו (אסור שיהיה תו נוסף בשורה הזו).

החל מגרסת PHP 5.3 ניתן להשתמש ב-heredoc בכל מקום כולל ב-classים.

נשאלת השאלה למה זה שימושי – התשובה היא ברורה מאליה, מי שמשתמש בזה לא צריך לדאוג בנוגע למרכאות ולא צריך לשים סוגריים מסולסלות סביב משתנים יותר מורכבים כגון איבר מסוים במערך.

nowdoc

nowdoc זהה ל-heredoc רק שהוא לא ממיר את המשתנים שנמצאים בו לערכים – בדיוק כמו מרכאות יחידות. כך למשל אם נשתמש ב-nowdoc כאן:


<?php
$name  = 'Moshe';

$str = <<<'ETC'

Hello, $name,  whats up?

ETC;

print $str;

הפלט שנראה הוא:


Hello, $name, whats up? 

אופן יצירת nowdoc זהה ל-heredoc, רק שכאשר אנו בוחרים את השם אנו משתמשים במרכאות. nowdoc הוא תוספת חדשה החל מ-PHP 5.3.

פוסטים נוספים שכדאי לקרוא

צילום מסך של סוואגר
יסודות בתכנות

openAPI

שימוש בתשתית הפופולרית למיפוי ותיעוד של API וגם הסבר בסיסי על מה זה API

מיקרו בקרים

הפעלת מסך oled קטנטן עם esp32

יצירת מערכת מולטימדיה שלמה בגודל של בול דואר עם מיקרובקר ובעלות של דולרים בודדים. וגם על הדרך נלמד על ת׳רדים

גלילה לראש העמוד