Điểm:1

Làm cách nào để tôi nhận được giá trị của Markup::$string?

lá cờ kz

Tôi có đoạn mã sau trong trình xử lý gửi tùy chỉnh:

$status = \Drupal::messenger()->messagesByType('status');
foreach ($trạng thái là $delta) {
   // Ở đây tôi muốn trích xuất chuỗi văn bản trong $delta.
}

biến $delta bây giờ chứa cái này:

delta => đối tượng stdClass
(
    [__CLASS__] => Drupal\Core\Render\Markup
    [string:protected] => Yêu cầu bài viết Bài viết của tôi đã được tạo.
)

Làm cách nào để lấy chuỗi được bảo vệ từ $delta?

Tôi đã thử một số phương pháp, nhưng cho đến nay tôi vẫn chưa tìm thấy phương pháp nào hiệu quả.

Đây là những thử nghiệm cho đến nay:

Lỗi: Gọi phương thức không xác định Drupal\Core\Render\Markup::getMessages()
Lỗi: Gọi phương thức không xác định Drupal\Core\Render\Markup::toString()

Điểm:4
lá cờ in

Một biến được bảo vệ chỉ có thể truy cập được từ chính lớp đó. Tùy chọn duy nhất của bạn để truy cập nó từ bên ngoài lớp là thông qua một phương thức công khai.

Hãy nhìn vào đánh dấu class, các phương thức công khai duy nhất là:

  1. đếm()
  2. jsonSerialize()
  3. __toString()

Nói một cách đơn giản, bởi vì Markup thực hiện phương pháp kỳ diệu __toString() (trả về $this->string), bạn có thể lấy chuỗi đó đơn giản bằng cách sử dụng đối tượng làm chuỗi, ví dụ: tiếng vang $my_markup_object;

Free Radical avatar
lá cờ kz
Cảm ơn! không biết về các phương pháp ma thuật PHP.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.