Score:1

ฉันจะรับค่าของ Markup::$string ได้อย่างไร

ธง kz

ฉันมีรหัสต่อไปนี้ในตัวจัดการการส่งแบบกำหนดเอง:

$status = \Drupal::messenger()->messagesByType('สถานะ');
foreach (สถานะ $ เป็น $ delta) {
   // ที่นี่ฉันต้องการแยกสตริงข้อความที่อยู่ใน $delta
}

ตัวแปร $เดลต้า ตอนนี้มีสิ่งนี้:

เดลต้า => วัตถุ stdClass
(
    [__CLASS__] => Drupal\Core\Render\มาร์กอัป
    [string:protected] => คำขอบทความ บทความของฉันถูกสร้างขึ้นแล้ว
)

ฉันจะรับสตริงที่ได้รับการป้องกันจาก $เดลต้า?

ฉันได้ลองวิธีการบางอย่างแล้ว แต่จนถึงตอนนี้ฉันยังไม่พบวิธีที่ได้ผล

นี่คือผู้ที่พยายามแล้ว:

ข้อผิดพลาด: การเรียกไปยังเมธอดที่ไม่ได้กำหนด Drupal\Core\Render\Markup::getMessages()
ข้อผิดพลาด: การเรียกไปยังเมธอดที่ไม่ได้กำหนด Drupal\Core\Render\Markup::toString()

Score:4
ธง in

ตัวแปรที่ได้รับการป้องกันสามารถเข้าถึงได้จากคลาสเท่านั้น ตัวเลือกเดียวของคุณในการเข้าถึงจากภายนอกชั้นเรียนคือผ่านวิธีการสาธารณะ

มองไปที่ มาร์กอัป class วิธีการสาธารณะเท่านั้นคือ:

  1. นับ()
  2. jsonทำให้เป็นอนุกรม()
  3. __toString()

พูดง่ายๆ เพราะมาร์กอัปใช้วิธีการวิเศษ __toString() (ซึ่งผลตอบแทน $this->string) คุณสามารถรับสตริงนั้นได้ง่ายๆ โดยใช้วัตถุเป็นสตริง เช่น เสียงสะท้อน $my_markup_object;

Free Radical avatar
kz flag
ขอบคุณ! ไม่รู้เกี่ยวกับวิธีการวิเศษของ PHP

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา