-
值傳遞
變數的複製,變數指向不同地址,一個變數的更改 不會 影響另一個變數
-
引用傳遞
指向同一個地址,一個變數的更改 會 影響另一變數
-
物件賦值, 為引用傳遞
<?php
namespace Article {
class Comment1
{
public $title;
public $content;
public function __construct($title, $content)
{
$this->title = $title;
$this->content = $content;
}
public function getTitle($title)
{
$title = 123;
return $title;
}
public function getTitleBy(&$title)
{
$title = 456;
return $title;
}
}
$obj = new Comment1('title', 'content');
$obj->getTitle($obj->title); //值傳遞,不會影響$obj物件的$title屬性
echo $obj->title;echo "<br/>";
echo "<pre>";var_dump($obj);echo "</pre>";echo "<br/>";
$obj->getTitleBy($obj->title);//引用傳遞,會影響$obj物件的$title屬性
echo $obj->title;echo "<br/>";
echo "<pre>";var_dump($obj);echo "</pre>";echo "<br/>";
$obj2 = $obj; //物件賦值,預設為引用傳遞,變數$obj2的修改 會 影響另一個變數$obj
$obj2->title = 'obj2 改變 title';
echo "<pre>";var_dump($obj);echo "</pre>";echo "<br/>";
}
複製程式碼,即可執行。 謝謝你的瀏覽,如有錯誤,歡迎指正哈!!!
本作品採用《CC 協議》,轉載必須註明作者和本文連結