แท็ก PHP และไวยากรณ์การฝังโค้ด
ใช้แท็กเปิดและปิด PHP รวมถึงไวยากรณ์ short echo ภายใน HTML
แท็ก PHP และไวยากรณ์การฝังโค้ด เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน
การผสม PHP กับ HTML
PHP ได้รับการออกแบบให้ฝังอยู่ภายในไฟล์ HTML ได้ เมื่อเซิร์ฟเวอร์ประมวลผลไฟล์ .php ทุกอย่างระหว่างแท็ก PHP จะถูกเรียกใช้งาน ส่วนที่เหลือจะถูกส่งไปยังเบราว์เซอร์ตามเดิม
แท็ก PHP มาตรฐาน
แท็กเปิดและแท็กปิด PHP มาตรฐาน:
<!DOCTYPE html>
<html><body>
<?php
$name = 'Alice';
echo 'Hello, ' . $name;
?>
<p>This is regular HTML.</p>
<?php
echo '<p>Back in PHP!</p>';
?>
</body></html>แท็กแสดงผลแบบสั้น
แท็กแสดงผลแบบสั้นใช้ส่งออกค่าโดยไม่ต้องเขียนคำว่า echo:
<!-- Long form -->
<h1><?php echo $pageTitle; ?></h1>
<!-- Short form (preferred in templates) -->
<h1><?= $pageTitle ?></h1>
<!-- With escaping -->
<h1><?= htmlspecialchars($pageTitle, ENT_QUOTES, 'UTF-8') ?></h1>หลีกเลี่ยงการส่งออกเสมอ
อย่าส่งออกข้อมูลที่ผู้ใช้ควบคุมโดยไม่ทำการหลีกเลี่ยงอักขระ:
<?php
$unsafe = '<script>alert("xss")</script>';
$safe = htmlspecialchars($unsafe, ENT_QUOTES, 'UTF-8');
// Define a helper:
function e(string $str): string {
return htmlspecialchars($str, ENT_QUOTES | ENT_HTML5, 'UTF-8');
}
?>
<p><?= e($userInput) ?></p>PHP ในแอตทริบิวต์ HTML
ฝัง PHP ในแอตทริบิวต์ HTML โดยต้องหลีกเลี่ยงอักขระเสมอ:
<?php
$url = '/profile/' . $user['id'];
$active = $currentPage === 'home' ? 'active' : '';
$count = 5;
?>
<a href="<?= htmlspecialchars($url) ?>" class="nav-link <?= $active ?>">
Inbox <span class="badge"><?= $count ?></span>
</a>หลีกเลี่ยงแท็กแบบสั้น
ไม่แนะนำให้ใช้แท็กเปิดแบบสั้น (เครื่องหมายน้อยกว่า ? โดยไม่มี php) เนื่องจากขึ้นอยู่กับการตั้งค่า php.ini และขัดแย้งกับ XML ควรใช้แท็กเปิดแบบเต็มหรือรูปแบบ echo แบบสั้นเสมอ:
<?php
// These are the safe, portable forms:
// <?php echo $name; ?> — full form
// <?= $name ?> — short echo (always enabled 5.4+)
// The short open tag <? is different and unreliable
// Do not use it in code intended for multiple environments.เงื่อนไขแบบอินไลน์ในแม่แบบ
ใช้ตัวดำเนินการสามส่วนหรือการรวมค่า null แบบอินไลน์โดยตรงในแม่แบบ:
<?php
$role = 'admin';
$loggedIn = true;
?>
<nav>
<?= $loggedIn ? 'Welcome back!' : 'Please log in' ?>
<?php if ($role === 'admin'): ?>
<a href="/admin">Admin Panel</a>
<?php endif; ?>
</nav>การบัฟเฟอร์ผลลัพธ์เพื่อเก็บข้อมูล
เก็บผลลัพธ์ PHP+HTML ไว้ในตัวแปรโดยใช้การบัฟเฟอร์ผลลัพธ์:
<?php
function renderCard(string $title, string $body): string {
ob_start();
?>
<div class="card">
<h2><?= htmlspecialchars($title) ?></h2>
<p><?= htmlspecialchars($body) ?></p>
</div>
<?php
return ob_get_clean();
}
echo renderCard('PHP', 'A server-side scripting language.');PHP_EOL สำหรับการทำงานข้ามแพลตฟอร์ม
ใช้ PHP_EOL เพื่อให้ได้อักขระขึ้นบรรทัดใหม่ที่ถูกต้องบนทุกแพลตฟอร์ม:
<?php
$lines = ['Line 1', 'Line 2', 'Line 3'];
$content = implode(PHP_EOL, $lines);
file_put_contents('output.txt', $content);
// PHP_EOL = "\n" on Linux/Mac, "\r\n" on Windows
echo PHP_EOL === "\n" ? 'Unix line ending' : 'Windows line ending';การละเว้นแท็กปิด
แนวปฏิบัติที่ดีที่สุดคือไม่ต้องใส่แท็กปิด PHP ท้ายไฟล์ที่มีเฉพาะ PHP การทำเช่นนี้ช่วยป้องกันไม่ให้ช่องว่างที่ไม่ตั้งใจถูกส่งออกไปก่อนส่วนหัว:
<?php
// config.php — PHP only, no closing tag needed
defined('APP_KEY') or define('APP_KEY', 'secret123');
define('DB_HOST', 'localhost');
define('DB_NAME', 'myapp');
// No closing PHP tag here — prevents header issuesบล็อก PHP หลายบล็อก
ไฟล์หนึ่งไฟล์สามารถมีบล็อก PHP หลายบล็อกสลับกับ HTML ได้:
<?php
$items = ['Apple', 'Banana', 'Cherry'];
$count = count($items);
?>
<h2>Shopping List (<?= $count ?> items)</h2>
<ul>
<?php foreach ($items as $item): ?>
<li><?= htmlspecialchars($item) ?></li>
<?php endforeach; ?>
</ul>ตรวจสอบความเข้าใจ
ไวยากรณ์การส่งออกของ PHP แบบใดที่แนะนำสำหรับการแสดงค่าตัวแปรในแม่แบบ HTML
ทบทวน: แท็ก PHP และการฝังโค้ด
ประเด็นสำคัญ:
- ใช้
<?php ?>สำหรับบล็อกโค้ด และ<?= ?>สำหรับการส่งออก - หลีกเลี่ยงอักขระของผลลัพธ์เสมอด้วย
htmlspecialchars() - ละเว้นแท็กปิดท้ายไฟล์ที่มีเฉพาะ PHP
- ใช้การบัฟเฟอร์ผลลัพธ์เพื่อเก็บ HTML ที่เรนเดอร์แล้ว
- ใช้ PHP_EOL เพื่อให้อักขระขึ้นบรรทัดใหม่ทำงานได้หลายแพลตฟอร์ม
คำถามที่พบบ่อย
บทเรียน “แท็ก PHP และไวยากรณ์การฝังโค้ด” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “แท็ก PHP และไวยากรณ์การฝังโค้ด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “แท็ก PHP และไวยากรณ์การฝังโค้ด”
ใช้แท็กเปิดและปิด PHP รวมถึงไวยากรณ์ short echo ภายใน HTML คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “แท็ก PHP และไวยากรณ์การฝังโค้ด” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม
ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แท็ก PHP และไวยากรณ์การฝังโค้ด
- HTML แบบไดนามิกด้วยลูป PHP
- การรวมและเรียกใช้ไฟล์
- รูปแบบเทมเพลต: แยกตรรกะออกจากมุมมอง