ในการเขียน php ด้วยการใช้ Yii2 framework หรืออะไรก็ได้ที่เป็น php เรามักต้องใช้ประโยคเด็ดคู่นี้เสมอ ๆ นั่นคือ print_r(); die();
เพื่อใช้ตรวจสอบค่าในโปรแกรมว่าถึงตรงนั้นแล้วค่าตัวแปรเป็นอะไร
และก็เกือบทุกครั้งที่ผลลัพธ์ที่เราต้องการดูซึ่งเป็น object, array หรือ json มันก็จะอ่านยากหน่อย ๆ - มาดูวิธีช่วยง่าย ๆ กัน:
- ใช้ <pre> เข้าช่วย
<pre>
<?php
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
print_r ($a);
?>
</pre>
อันนี้เป็นตัวอย่างที่ยกมาให้ดูจาก php manual ที่ link นี้ครับ: php.net/manual/en/function.print-r.php ‣ สำหรับผลลัพธ์ที่ได้จะเป็นแบบนี้
<pre>
Array
(
[a] => apple
[b] => banana
[c] => Array
(
[0] => x
[1] => y
[2] => z
)
)
</pre>
หรือแบบนี้ echo "<pre>"; print_r($model); echo "</pre>";
เพื่อ print ค่าของตัวแปร $model
ให้อ่านได้ง่ายขึ้น
- ใช้ view source ที่ browser ช่วย
อีกวิธีนึงก็คือเวลา print_r(); die();
อ่านไม่ค่อยออก ที่ browser ให้เปิด view source จะช่วยให้อ่านได้ง่ายขึ้น
Firefox: Menu ‣ Web Developer ‣ Page Source
หรือกด Ctrl
+U
Chrome: Menu ‣ More tools ‣ Developer tools
หรือกด Ctrl
+Shift
+I
ตัวอย่างเช่นจากผลลัพธ์อะไรคล้าย ๆ แบบนี้
app\models\RfqUploadedFiles Object ( [_attributes:yii\db\BaseActiveRecord:private] => Array (
[filename_2d] => Screenshot from 2018-04-14 21-59-33.png [filename_3d] => [filename_sample_part] =>
[filename_plating_spec_data] => [filename_other] => [file_md5_2d] => 0497de44eb30dbf.png
[rfq_summary_id] => 4 ) [_oldAttributes:yii\db\BaseActiveRecord:private] =>
[_related:yii\db\BaseActiveRecord:private] => Array ( )
[_relationsDependencies:yii\db\BaseActiveRecord:private] => Array ( )
[_errors:yii\base\Model:private] => Array ( [rfq_summary_id] => Array ( [0] => Rfq Summary ID "4"
has already been taken. ) )
จะกลายมาเป็นแบบนี้ บน Firefox ด้วยการกด Ctrl
+U
app\models\RfqUploadedFiles Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[filename_2d] => Screenshot from 2018-04-14 21-59-33.png
[filename_3d] =>
[filename_sample_part] =>
[filename_plating_spec_data] =>
[filename_other] =>
[file_md5_2d] => 0497de44eb30dbf.png
[rfq_summary_id] => 4
)
[_oldAttributes:yii\db\BaseActiveRecord:private] =>
[_related:yii\db\BaseActiveRecord:private] => Array
(
)
[_relationsDependencies:yii\db\BaseActiveRecord:private] => Array
(
)
[_errors:yii\base\Model:private] => Array
(
[rfq_summary_id] => Array
(
[0] => Rfq Summary ID "4" has already been taken.
)
)
วันนี้มาแบบสั้น ๆ ง่าย ๆ ใช้งานได้อย่างมีประโยชน์ และช่วยให้การเขียน code สนุกและง่ายขึ้น - ขอให้ทุกคนมีความสุขกับการเขียน code กันนะครับ บ๊ายบาย