возврат ссылки на объект через тернарный условный оператор

inTox

вёбных дел мастер
возврат ссылки на объект через тернарный условный оператор

Помогите, пожалуйста, разобраться с такой вещью:
есть класс.
PHP:
class struct{
    function struct(){
        static $SID = 0;
        static $STRUCTS;
        $this->STRUCTS = & $STRUCTS;
        $this->SID = $SID;
        $STRUCTS[$SID] = & $this;
        ++$SID;
        }
        
        // получить ссылку на узел по ID
        function & GetElementByID($id=0){
        if ($id==0){RETURN $this;}else{RETURN $this->STRUCTS[$id];}
        // RETURN ($id==0)?$this:$this->STRUCTS[$id];
        }
}
когда я вызываю метод GetElementByID(), то в случае с конструкцией if(){}else{} возвращается ссылка на объект, в случае с тернарным условным оператором — копия.
Скажите, почему так происходит? Ведь эти конструкции по смыслу идентичны, или я чего то не догоняю?

ЗЫ в поиске был
 

tony2001

TeaM PHPClub
>Ведь эти конструкции по смыслу идентичны, или я чего то не догоняю?
нет.
заметь:
>конструкцией if(){}else{}
и
>тернарным условным оператором

конструкция и оператор.
оператор по определению возвращает _результат_ (т.е. значение).
 

inTox

вёбных дел мастер
то есть в случае с тернарным оператором возвращается его уже вычмсленное значение? Ндяя. туплю.
спасибо Тони
 

tony2001

TeaM PHPClub
>то есть в случае с тернарным оператором возвращается его уже вычмсленное значение? Ндяя. туплю.
ага, результат оператора.
примерно как ($a = 2) == 2
"=" - оператор присваивания и его результат == правое значение.
 
Сверху