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.

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

ממנטו עם גמל אין לי מושג למה אני עושה דברים
יסודות בתכנות

מה זה stateful ו-stateless

מה זה סטייט? למה אנחנו צריכים לדעת מה זה ואיך רואים את זה ממש בעיניים.

פתרונות ומאמרים על פיתוח אינטרנט

גישת Least Privilege

גישה לכתיבת קוד מאובטח שכדאי מאד להכיר – במיוחד בעידן הבינה המלאכותית

בינה מלאכותית

התקנה של Openclaw על רספברי פיי

איך מתקינים את הלהיט החדש בתחום על רספברי פיי? קל ופשוט ללא חומרה מיוחדת ועם הסבר מפורט.

בינה מלאכותית

שימוש ב-Plan Mode באופן חכם

כך נמנעי את קריאות השבר של "מה האייג'נט עשה?!" שיטת Plan mode: שיטה קריטית לעבודה יעילה, המייצרת תוכנית עבודה מפורטת (DoD) עוד לפני כתיבת שורת קוד אחת.

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