พิจารณา:
$xml = "l";
$xml = "vv";
echo $xml;
นี้จะสะท้อนVV ทำไมและฉันจะสร้างสตริงหลายบรรทัดสำหรับสิ่งต่างๆเช่นSimpleXMLฯลฯ ได้อย่างไร
พิจารณา:
$xml = "l";
$xml = "vv";
echo $xml;
นี้จะสะท้อนVV ทำไมและฉันจะสร้างสตริงหลายบรรทัดสำหรับสิ่งต่างๆเช่นSimpleXMLฯลฯ ได้อย่างไร
concatenation
แหงนมอง นั่นคือสิ่งที่เรียกว่าเมื่อคุณรวมสตริงเข้าด้วยกัน
คำตอบ:
ดี,
$xml = "l
vv";
ผลงาน
คุณยังสามารถใช้สิ่งต่อไปนี้:
$xml = "l\nvv";
หรือ
$xml = <<<XML
l
vv
XML;
คุณสามารถเชื่อมสตริงโดยใช้ตัว.=
ดำเนินการ
$str = "Hello";
$str .= " World";
echo $str; //Will echo out "Hello World";
PHP มีสตริง Heredoc และ Nowdoc ซึ่งเป็นวิธีที่ดีที่สุดในการจัดการสตริงหลายบรรทัดใน PHP
http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
$var is replaced automatically.
EOD;
Nowdoc เป็นเหมือน Heredoc แต่ไม่ได้แทนที่ตัวแปร
$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
$var is NOT replaced in a nowdoc.
EOD;
ระวังว่าโทเค็นสิ้นสุดEOD
จะต้องไม่เยื้องเลยไม่เช่นนั้น PHP จะไม่รับทราบ นอกจากนี้คุณไม่จำเป็นต้องใช้ " EOD
"; สามารถเป็นสตริงใดก็ได้ที่คุณต้องการ
ไม่แน่ใจว่ามันจะเพิ่มประสิทธิภาพอย่างไร แต่สำหรับที่ที่มันไม่สำคัญจริงๆฉันชอบรูปแบบนี้เพราะฉันมั่นใจได้ว่ามันใช้ \ r \ n (CRLF) ไม่ใช่รูปแบบใดก็ตามที่ไฟล์ PHP ของฉันเป็น บันทึกใน.
$text="line1\r\n" .
"line2\r\n" .
"line3\r\n";
นอกจากนี้ยังช่วยให้ฉันเยื้องได้ตามต้องการ
อีกวิธีหนึ่งคือการใช้การบัฟเฟอร์เอาต์พุตคุณสามารถรวบรวมทุกสิ่งที่ถูกส่งออก / สะท้อนและเก็บไว้ในตัวแปร
<?php
ob_start();
?>line1
line2
line3<?php
$xml = ob_get_clean();
โปรดทราบว่าการบัฟเฟอร์เอาต์พุตอาจไม่ใช่ทางออกที่ดีที่สุดในแง่ของประสิทธิภาพและความสะอาดของโค้ดสำหรับกรณีนี้ แต่ควรทิ้งไว้ที่นี่เพื่อใช้อ้างอิง
อาจจะลอง ". =" indead of "="?
$xml="l";
$xml.="vv";
จะให้ "lvv";
ในการใส่สตริง "l" และ "vv" ในบรรทัดแยกกันในโค้ดเพียงอย่างเดียว:
$xml = "l";
$xml .= "vv"
echo $xml;
ในกรณีนี้คุณกำลังบอกว่าจะต่อท้าย.=
สตริงต่อท้ายเวอร์ชันก่อนหน้าของตัวแปรสตริงนั้น โปรดจำไว้ว่า = เป็นเพียงตัวดำเนินการกำหนดดังนั้นในรหัสเดิมของคุณคุณกำลังกำหนดตัวแปรเป็นค่าสตริงใหม่
ในการใส่สตริง "l" และ "vv" ในบรรทัดแยกกันในเสียงสะท้อนเพียงอย่างเดียว:
$xml = "l\nvv"
echo $xml;
คุณไม่จำเป็นต้องมีหลายสตริงในกรณีนี้เนื่องจากอักขระของบรรทัดใหม่\n
จะดูแลคุณเอง
ในการใส่สตริง "l" และ "vv" ในบรรทัดที่แยกจากกันในโค้ดและเมื่อสะท้อน:
$xml = "l";
$xml .= "\nvv"
echo $xml;
$xml="l\rn";
$xml.="vv";
echo $xml;
แต่คุณควรดูhttp://us3.php.net/simplexml