Ну, раз есть отложенное копирование, значит есть флаг, что мы указываем на то, что надо при модификации скопировать ) Zend engine скрывает такие штуки внутри.
То есть, получается, что данный вопрос это что-то вроде кота, который не жив, не мёртв, а станет мертвым только когда, когда мы измерим его состояние данной функцией
по моему, самый рульный вариант у tashkentchi.
а с settype() оно как-то не однозначно.. это-ж от кишков zend зависит, и в мане ниче по этому поводу нет. по идее, при settype() не факт, что он не создаст 2 объехта. типо undefined behavior