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.

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

DALL·E 2024-09-06 12.34.24 - A visually engaging post about Python and cryptographic problems. The image should feature a dark-themed background with a glowing, futuristic Python
פתרונות ומאמרים על פיתוח אינטרנט

בעיות במימוש של פונקציות קריפטוגרפיות בפייתון

היום (16 לספטמבר) ממש, אני מעביר הרצאה ב-PyconIL 2024 על בעיות קריפטוגרפיות באפליקציות פייתון. לצערי אי אפשר להכניס את כל הבעיות הקריפטוגרפיות להרצאה אחת או

תמונת תצוגה של מנעול על מחשב
פתרונות ומאמרים על פיתוח אינטרנט

הגנה מפני XSS עם Trusted Types

תכונה ב-CSP שמאפשרת מניעה כמעט הרמטית להתקפות XSS שכל מפתח ווב צריך להכיר וכדאי שיכיר.

DALL·E 2023-10-21 22.28.58 - Photo of a computer server room with red warning lights flashing, indicating a potential cyber threat. Multiple screens display graphs showing a sudde
יסודות בתכנות

מבוא לאבטחת מידע: IDOR

הסבר על התקפה אהובה ומוצלחת שבאמצעותה שואבים מידע מאתרים

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