私が参照魔法__getによる返品とここにスクリプトの例があります。参考明確化することによりPHP戻り
class a{
public $_attributes = array();
function &__get($k){
if(isset($this->_attributes[$k])){
return $this->_attributes[$k];
}else{
return null;
}
}
function __set($k, $v){
$this->_attributes[$k] = $v;
}
}
$a = new a();
$a->username = "sam";
var_dump($a->username);
$u = $a->username;
$u = $u.'dddd';
var_dump($a->username);
var_dump($u);
ここで私の__getから参照することにより帰国のアイデアは、私は同じようなものを行うことができます:
$this->user->ins[session_id()] = array(
"key"=>$_SESSION['server_key'],
"ip"=>$_SERVER['REMOTE_ADDR'],
"agent"=>$_SERVER['HTTP_USER_AGENT'],
"last_request"=>$_SERVER['REQUEST_URI'],
"last_active"=>new MongoDate(),
);
私は通常、元の配列のコピーを使用しているPHPのためにできません。しかし、私が新しい変数($ u)に "username"と言うと、元の親の参照を渡すことは望ましくありません。
上記のスクリプトを出力し:それはバック$ Uへの参照として$ユーザ名を渡していないと私はそれがしたいようにそれが動作becasue素晴らしいです
string(3) "sam" string(3) "sam" string(7) "samdddd"
を。
今質問の時間:これは良いアプローチですか?これはPHPで期待される動作ですか?
私は参照のためのページを読んでいましたが、それは少しばかりですが、$ uは参照でなければならないことをPHPに伝えるために、変数を抜き出す際に参照記号も使用する必要がありますここに:http://php.net/manual/en/language.references.return.php)。
これは期待された動作であり、PHPでそれを使用することができますか、私は見ていない恐ろしいものがありますか?
おかげ
infoありがとうございました: – Sammaye