引用与赋值

<?php

$arr = array(1,2,3,4,5,6);

foreach ($arr as &$val){
 $val = 'x';
 $new[] = $val;
}
print_r($new);  //赋值
echo "<br>/n";
print_r($arr);    //引用

?>

 

 

<?php

class A{
 static public $WHAT='aa';
 private $a;
 

 function __construct(){
  $this->hello();
 }
 
 function seta($val){
  $this->a = $val;
 }
 
 function geta(){
  return $this->a;
 }

 function hello(){
  echo "hello world";
 }
}

$a = new A();
$a->seta("hello8");
echo $a->geta();   //output:hello8

echo "<br />";
$b = $a;
$b->seta("ttttaaa");
echo $b->geta(); //output:ttttaaa
echo "<br />";
$c = clone $a;
echo $c->geta();

//output:ttttaaa 为什么不是hello8呢,原因是$b与$a是对象的引用,因此当$b中的seta方法给$a改变值时$a 所new出来的对象的值也变化了所以当$c复制$a对象时就变成了这种情况了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值