מחרוזת ב-PHP היא טקסט בתוך גרשיים בודדים או מירכאות כפולות. משרשרים מחרוזות עם אופרטור הנקודה, $first . ' ' . $last, או שמים משתנה ישירות בתוך מירכאות כפולות: "Hello, $name".
הנקודה מחברת כל שני ערכים למחרוזת חדשה. מספרים מומרים בשבילכם, כך ש-"Total: " . 42 הוא "Total: 42".
גרשיים בודדים מול מירכאות כפולות
מירכאות כפולות עושות שני דברים נוספים: הן מחליפות משתנים בערכים שלהם, והן הופכות רצפי בריחה כמו \n (ירידת שורה) ו-\t (טאב) לתווים שהם מייצגים. גרשיים בודדים מדפיסים את הטקסט בדיוק כפי שנכתב, חוץ מ-\' ו-\\.
השתמשו בגרשיים בודדים לטקסט קבוע ובמירכאות כפולות כשאתם רוצים משתנה או \n בפנים. הפרש המהירות ביניהם קטן מכדי למדוד אותו, אז בחרו את מה שהופך את השורה לקריאה יותר.
שרשור מחרוזות עם . ו-.=
.= מוסיפה לסוף משתנה מחרוזת. זו הדרך הרגילה לבנות טקסט בלולאה, למשל קטע HTML. הריצו את הבלוק הזה והעורך יפתח את הלשונית Page, שמציגה את הרשימה כפי שהיא מוצגת בדפדפן.
קדימות חשובה כשמערבבים . עם חשבון. מאז PHP 8, + ו-- קושרים חזק יותר מ-., כך ש-"Sum: " . 2 + 3 הוא "Sum: 5". סוגריים הופכים את זה לברור לקורא הבא: "Sum: " . (2 + 3).
משתנים, מערכים ואובייקטים בתוך מחרוזת
משתנה רגיל עובד לבד בתוך מירכאות כפולות. לאיבר במערך, לשרשרת מאפיינים של אובייקט או לקריאה למתודה, עטפו את הביטוי בסוגריים מסולסלים. הסוגריים גם מפרידים בין משתנה לבין אותיות שבאות אחריו.
מתודות עובדות בתוך הסוגריים, פונקציות רגילות לא: השורה האחרונה מדפיסה את הסוגריים ואת שם הפונקציה סביב הערך של $fruit. קראו לפונקציה לפני המחרוזת, או השתמשו ב-sprintf כשיש במחרוזת הרבה ערכים.
שינוי אותיות: strtoupper, strtolower, ucfirst, ucwords
הפונקציות האלה עובדות בית אחרי בית ומשנות רק את האותיות a עד z. לטקסט עם סימנים דיאקריטיים, קירילית או יוונית, השתמשו בגרסאות ה-multibyte, שמבינות UTF-8:
קריאת תווים בודדים וחזרה על מחרוזות
אפשר לגשת למחרוזת לפי אינדקס כמו למערך. היסטים שליליים סופרים מהסוף. לספירת תווים ראו strlen.
טעות נפוצה: + במקום .
ב-JavaScript + משרשר מחרוזות. ב-PHP + הוא תמיד חשבון: מחרוזות מספריות מחוברות כמספרים, וטקסט שאינו מספר זורק שגיאה.
אם אתם רואים מספר במקום שציפיתם לטקסט משורשר, או Unsupported operand types: string + string, חפשו + שצריך להיות ..
שאלות נפוצות
איך משרשרים מחרוזות ב-PHP?
השתמשו באופרטור הנקודה: $full = $first . ' ' . $last;. כדי להוסיף למחרוזת קיימת, השתמשו ב-.=: $html .= '<li>Item</li>';. האופרטור + מיועד למספרים, ו-"Hello" + "World" זורקת TypeError ב-PHP 8.
מה ההבדל בין גרשיים בודדים למירכאות כפולות ב-PHP?
מירכאות כפולות מחליפות משתנים ורצפי בריחה: "Hi $name\n" מדפיסה את הערך של $name וירידת שורה. גרשיים בודדים מדפיסים כמעט הכול כפי שנכתב: 'Hi $name\n' מדפיסה את סימן הדולר, את השם ולוכסן הפוך ואחריו n. בתוך גרשיים בודדים רק \' ו-\\ הם רצפי בריחה.
איך שמים ערך ממערך בתוך מחרוזת PHP?
עטפו אותו בסוגריים מסולסלים: "Hello, {$user['name']}". אותו דבר עובד למאפייני אובייקט ולקריאות למתודות: "{$user->getName()}". בלי סוגריים, "$user[name]" (בלי מירכאות סביב המפתח) עובד גם הוא למפתח פשוט.
איך הופכים מחרוזת לאותיות גדולות או קטנות ב-PHP?
strtoupper('php') מחזירה PHP, strtolower('PHP') מחזירה php, ucfirst('hello') הופכת את האות הראשונה לגדולה ו-ucwords('hello world') הופכת כל מילה לאות גדולה. לטקסט עם סימני ניקוד או אותיות שאינן לטיניות השתמשו ב-mb_strtoupper() וב-mb_strtolower().