วันอาทิตย์ที่ 17 มีนาคม พ.ศ. 2556

PHP : สุดยอดเทคนิคการเขียน html ใน php ได้สะดวกขึ้น (Heredoc Syntax)

วันนี้เป็นเทคนิคที่ผมอ่านเจอแล้วร้อง โอ้โห ทำอย่างนี้ได้ด้วย ลองมาดูกันครับ

Heredoc ไม่รู้ว่าใครเคยได้ยินมาก่อนรึเปล่า มาเริ่มพร้อมกันและกันครับ  Heredoc ใช้ในการซ่อน string สำหรับการแสดง html โดยเฉพาะ เอาเป็นว่า คุณเคยปวดหัวกับการเขียน \" เพื่อ escape tag ต่างๆ เวลาพ่นในหน้า php หรือไม่ หากเป็นอย่างนั้นแล้ว กรุณาเลือกใช้เรา Heredoc แก้ปัญหาให้ท่านได้ 555

เท่านี้ท่านก็สามารถใช้ " ได้อย่างสบายใจหายห่วง syntax ของ heredoc ใช้ (<<<)  และต่อด้วยคำที่ใช้ในการบ่งบอกการเริ่ม block ของ heredoc ซึ่งจะนิยมตั้งเป็นตัวอักษรพิมพ์ใหญ่ทั้งหมด ซึ่งสามารถประกอบด้วยตัวเลขและ underscore ได้

ตัวอย่างครับ

echo <<< EOT
// html
หรือ
$string = <<<EOD
// html

เมื่อเขียนส่วน html จบแล้วให้ปิดด้วยชื่อตัวแปรเดียวกันกับที่ตั้งไว้โดยไม่ต้องใช้ <<< ครับ
ตัวอย่างสำเร็จรูป

echo <<<EOT
<li>
<input type="checkbox" name="test" value="done" /> </li>
EOT;

จะสังเกตว่า บรรทัดแรก echo <<< EOT จะไม่มีเครื่องหมาย ; ในการปิด แต่จะปิดทีเดียวที่บรรทัดสุดท้าย EOT; ซึ่งจะน้องพิมพ์เป็นคำแรกของบรรทัด ห้ามมีเว้นวรรคด้านหน้าเด็ดขาดครับ ไม่งั้นจะรันไม่ผ่านครับ
 ด้านตัวเป็นการสร้าง checkbox ครับ ที่ง่ายมากๆ และใช้ในส่วนที่เราเขียน programming ได้ครับ สุโค่ย ไม่ต้อง escape ไม่ต้องใช้ stand in ครับ
หากจะเขียนในแบบปกติจะเป็นแบบนี้ครับ

echo “<li><input type=\"checkbox\" name=\"test" value=\"done\" /></li>

เห็นความแตกต่างมั้ยครับ ของอา heredoc เราง่ายกว่าเยอะ

โค้ดท้ายบทรันเพื่อเสริมความมั่นใจในการนำเอาไปใช้ครับ รันแล้วลอง view source ดูครับ และจะบรรลุครับ

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>

<?php

$name = array("one","two","three");

echo "<ol>";
for( $i = 0 ; $i < 3 ; $i++){

echo<<<EOD

<li><input type="checkbox"
 name="$name[$i]" value="done"
 /> $name[$i] </li>

EOD;

}

echo "</ol>";
?>

</body>
</html>

ที่มาความรู้ PHP 5 Advanced เจ้าเก่าครับ

1 ความคิดเห็น: