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.

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

ספריות ומודולים

מציאת PII באמצעות למידת מכונה

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

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

SSG עם next

אחרי שלמדנו במאמר הקודם מה זה SSR והבנו שלא מדובר בקליע כסף שפותר את כל הבעיות שלנו, נלמד על SSG שיכול להקל על כמה מהבעיות של SSR.

פיתוח ב-JavaScript

Axios interceptors

תכנון נכון של קריאות AJAX באפליקציה ריאקטית וניהול השגיאות או ההצלחות עם פיצ׳ר נחמד של axios

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