Разыменование объектов, возвращаемых функцией
Краткое описание
В PHP4 было невозможно разыменовывать объекты, возвращаемые функциями, и поэтому приходилось заводить временные переменные для использования свойств или вызова методов таких объектов. В PHP5 такое больше не нужно, т.к. поддерживается прямое разыменование.
Пример:
<?php
class Circle {
function draw() {
echo "Круг\n";
}
}
class Square {
function draw() {
echo "Квадрат\n";
}
}
function ShapeFactoryMethod($shape) {
switch ($shape) {
case "Круг": return new Circle();
case "Квадрат": return new Square();
}
}
ShapeFactoryMethod("Круг")->draw();
ShapeFactoryMethod("Квадрат")->draw();
?>
Результат:
Проблемы с обратной совместимостью
Проблем с обратной совместимостью данное нововведение не имеет.