แอตทริบิวต์ที่สร้างขึ้นผ่าน คุณลักษณะ
ชั้นเรียนจะหลบหนี
เดอะ แอตทริบิวต์::__toString()
รหัสคือรหัสต่อไปนี้
$return = '';
/** @var \Drupal\Core\Template\AttributeValueBase $value */
foreach ($this->storage เป็น $name => $value) {
$rendered = $value->render();
ถ้า ($ แสดงผล) {
$return .= ' ' . $แสดงผล;
}
}
ส่งคืน $return;
ในชั้นเรียนที่ขยายออกไป AttributeValueBase
, ตัวอย่างเช่น AttributeString
, แสดงผล ()
มีรหัสต่อไปนี้
ค่า = (สตริง) $นี่;
ถ้า (isset($this->value) && static::RENDER_EMPTY_ATTRIBUTE || !empty($value)) {
ส่งคืน Html::escape($this->name) '="' . $value . '"';
}
AttributeString::__toString()
มีรหัสต่อไปนี้
ส่งคืน Html::escape($this->value);
Html :: หนี ()
ถูกเรียกสำหรับชื่อแอตทริบิวต์และค่าของมัน นั่นเป็นสาเหตุที่แอตทริบิวต์ที่สร้างขึ้นโดยใช้โค้ดที่คล้ายกับเครื่องหมายอัญประกาศเดี่ยวต่อไปนี้ภายในชื่อและค่าของแอตทริบิวต์จึงถูกหลีกหนี
$attributes = แอตทริบิวต์ใหม่ (อาร์เรย์ ());
$attributes['id'] = 'ถุงเท้า';
$attributes['style'] = 'สีพื้นหลัง:สีขาว';
echo '<แมว' . $แอตทริบิวต์ '>';
AttributeArray::__toString()
ใช้รหัสต่อไปนี้
// กรองค่าว่างออกก่อนพิมพ์
$this->value = array_unique(array_filter($this->value));
ส่งคืน Html::escape(ระเบิด(' ', $this->value));
ซึ่งหมายความว่าสำหรับแอตทริบิวต์ที่สร้างขึ้นโดยใช้โค้ดที่คล้ายกับต่อไปนี้ ค่าแอตทริบิวต์จะถูกหลีก
$attributes = แอตทริบิวต์ใหม่ ();
$attributes['คลาส'] = อาร์เรย์ ();
$attributes['class'][] = 'แมว';