在PHP 中重載運算子:ArrayObject 來救援
雖然PHP 本身不支援運算子重載,但有一些解決方法可以實現類似的功能。在創建 Array 類別的上下文中重載 [] 運算子的一種方法是利用 PHP5 及更高版本中的 SPL ArrayObject 類別。
ArrayObject 和運算子重載
ArrayObject 為建立自訂的類似陣列的類別提供了基礎。透過擴充 ArrayObject,您可以建立具有所需運算子重載行為的「假」陣列。考慮以下範例:
<code class="php"><?php class CustomArray extends ArrayObject { public function offsetSet($i, $v) { echo 'appending ' . $v . "\n"; parent::offsetSet($i, $v); } } $a = new CustomArray; $a[] = 1; // Output: appending 1</code>
在此範例中,CustomArray 擴充了 ArrayObject 並重寫了 offsetSet 方法,以在陣列中新增元素之前執行所需的操作。因此,當使用 [] 運算子賦值時,會觸發自訂行為。
以上是如何使用 ArrayObject 在 PHP 中模擬陣列的運算子重載?的詳細內容。更多資訊請關注PHP中文網其他相關文章!