Forum und email

תחביר בסיסי

Table of Contents

מעבר ממצב HTML למצב PHP

כאשר PHP מפרשת קובץ, היא פולטת את הטקסט שבו, עד לרגע שבו תמצא תגיות מיוחדות שמסמנות לה את סוף הטקסט ותחילת הקוד של PHP. המפרש יבצע את כל פקודות ה PHP שימצא עד תגית הסגירה הבאה, שתסמן למפרש את סוף הקוד ותחילת הטקסט וברגע זה שוב תתבצע שליחה של הטקסט אל הפלט. מנגנון זה מאפשר את שילוב הקוד במסמך HTML: כל מה שמחוץ לתגיות ה PHP נחשב לפלט רגיל בעוד שכל מה שנמצא בתוכן מעובד כקוד.

ישנן ארבע דרכים לסמן את תגיות הפתיחה וסגירה של קוד PHP. מהן רק שתיים (<?php. . .?> ו <script language="php">. . .</script>). פעילות תמיד. באחרות אפשר להשתמש לאחר שינוי הגדרות בקובץ ההגדרות php.ini. למרות שתגיות ה PHP הקצרות והתגיות בסגנון ASP יותר נוחות לשימוש, הן לא מתאימות לשימוש בחלק מהמקרים, לדוגמה - אם ברצונך לשלב קוד PHP ב XML או XHTML, אתה חייב להשתמש בתגיות הארוכות <?php. . .?> כדי לא להתנגש עם תגיות XML.

התגיות הנתמכות ב PHP הן:

Example#1 דרכים לעבור ממצב HTML למצב PHP

1.  <? echo ("this is the simplest, an SGML processing instruction\n"); ?>
    <?= expression ?> This is a shortcut for "<? echo expression ?>"
    
2.  <?php echo("if you want to serve XHTML or XML documents, do like this\n"); ?>

3.  <script language="php">
        
echo ("some editors (like FrontPage) don't
              like processing instructions"
);
    
</script>

4.  <% echo ("You may optionally use ASP-style tags"); %>
    <%= $variable; # This is a shortcut for "<% echo . . ." %>

הדרך הראשונה תפעל רק אם התמיכה בתגיות קצרות הופעלה. כדי אפשר להפעיל תמיכה זו(ב PHP 3 ) על-ידי שימוש בפונקציה short_tags(), תוך הפעלת האפשרות short_open_tag בקובץ ההגדרות של PHP, או על-ידי הידור של PHP עם האופציה --enable-short-tags בהרצת ה configure.

ושוב יש לציין כי הדרך השנייה מועדפת מאחר ואינה גורמת להתנגשות עם מסמכים מסוג XML כדוגמת XHTML.

הדרך הרביעית תפעל רק אם סגנון תגיות ה ASP מאופשר על-ידי ההגדרה asp_tags בקובץ ההגדרות.

Note: תמיכה בתגיות בסיגנון ASP אפשרית רק מגרסה 3.0.4 ומעלה.

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

PHP מתירה שימוש במבנה כמו זה:

Example#2 מעבר מצבים מתקדם

<?php
if ($expression) { 
    
?>
    <strong>This is true.</strong>
    <?php 
} else { 
    
?>
    <strong>This is false.</strong>
    <?php 
}
?>
כצפוי, קוד זה יפעל, כי כאשר PHP מוצאת את תגגיות הסגירה, היא פשוט מתחילה מתחילה לשלוח את הטקסט כפלט עד שתמצא את תגית הפתיחה הבאה. הדוגמה הנתונה היא פשוטה, אך כאשר מדובר בשליחת קטעי טקסט גדולים לפלט, תגיות הפתיחה וסגירה יעילות יותר מאשר הדפסת הפלט בעזרת הפונקציה echo() או הפונקציה print() או פונקציה דומה.