شرح صفوف ومحتوى الفقرة
تحدد الدالة السحرية __toString(): string كيفية تحويل الكائن إلى نص تلقائياً عند تمريره إلى echo أو دمجه داخل نص مزدوج أو تحويله بـ (string).
- تبدأ جميع الدوال السحرية في PHP بشرطتين سفليتين (
__) ويستدعيها المحرك تلقائياً عند حدوث عمليات معينة على الكائن. - لا تأخذ الدالة
__toString()أي معاملات، ويجب إلزاماً أن تُرجع قيمة نصية من النوعstring. - في PHP 8.0+، أي صنف يعرّف الدالة
__toString()يطبّق ضمنياً الواجهة المدمجةStringable.
إن وضع الكائن {$price} داخل علامتي تنصيص مزدوجتين يستدعي تلقائياً الدالة $price->__toString().
PHP
<?php
class Money {
public function __construct(private int $cents, private string $curr) {}
public function __toString(): string {
return number_format($this->cents / 100, 2) . " " . $this->curr;
}
}
$price = new Money(14995, "SAR");
echo "Total Due: {$price}\n";