2017-02-25 7 views
1

すべてのPHP開発者に親愛なるです。PHPオブジェクトをvarとして使用

私はPHPフレームワークで異なるアプローチを実装することを考えています。 私は解決策を探そうとしましたが、私が何を得たのか分からなかったのです。私はクラスプロパティを持っています。それは多くの保護されたプロパティを持っています。そのうちの1つは$ valueです。 私の要件は以下の通りです。1. Object - > $ valueを変数として初期化する必要があります。2. Object - > $ valueを変数としてアクセスする必要があります。

Property.php

class Property{ 
    /** 
    * @var string $name 
    * @var string $element 
    * @var string $value 

    */ 
    protected $name; 
    protected $value; 
    protected $element; 



    public function __construct($name, $element){ 
     $this->setName($name); 
     $this->setElement($element); 
    } 
    public function setName($name){ 
     $this->name=$name; 
    } 
    public function getName():string { 
     return $this->name; 
    } 
    public function setElement($element){ 
     $this->element=$element; 
    } 
    public function getElement():string{ 
     return $this->element; 
    } 
    public function setValue($value){ 
     $this->element->setText($value); 
    } 
    public function getValue():string { 
     return $this->element->getText(); 
    } 
} 

Implementation.php

$try= new Property("test","try"); 

// now here what i need to have 
$try="i am testing"; // should equal or call to: $try->setValue("i am testing"); 

$tmpAnother= $try;  // should equal/call to: $tmpAnother= $try->getValue(); 

私はそれが良いアプローチがあるかどうかわからないですか、私は良い方向に午前:私はあなたの参考のために、次のコードを持っています。可能であれば、このアプローチまたは解決策にコメントしてください。

は、それが動作しません...

+2

おそらく自分の言語を作成する必要があります。 '$ try-> setValue("私はテストしています ");と' $ try = "私はテストしています";は決して何もしませんが、変数$ tryに文字列リテラルを割り当てません。 ?);あなたは '$ tmpAnother = $ try;のために魔法の' __invoke() 'メソッドを使うことができますが、 –

+0

@ MarkBakerあなたに感謝します –

答えて

1

をあなたのすべてに感謝し、そしてその理由は、PHPは、演算子のオーバーロードをサポートしていないということです。

参照:Does php support operator overloading?

関連する問題