<?php
/*function &test()
{
static $b=0;//申明一个静态变量
$b=$b+1;
echo $b;
return $b;
}
$a=test();//这条语句会输出 $b的值 为1
$a=5;
$a=test();//这条语句会输出 $b的值 为2
$a=&test();//这条语句会输出 $b的值 为3
$a=5;
$a=test();//这条语句会输出 $b的值 为6*/
// 在对象上面
class talker{
private $data = 'Hi';
public function & get(){
return $this->data;
}
public function out(){
echo $this->data;
}
}
$aa = new talker();
$d = &$aa->get();
// 这里的$aa->get()得到数据地址,前面在一个&是把得到数据的地址赋值给$d,如果不加,就只把地址对应的值copy一份给$d了
// 和变量赋值一样道理, $a = $b; $a = &b;
$aa->out();
$d = 'How';
$aa->out();
$d = 'Are';
$aa->out();
$d = 'You';
/*function &test()
{
static $b=0;//申明一个静态变量
$b=$b+1;
echo $b;
return $b;
}
$a=test();//这条语句会输出 $b的值 为1
$a=5;
$a=test();//这条语句会输出 $b的值 为2
$a=&test();//这条语句会输出 $b的值 为3
$a=5;
$a=test();//这条语句会输出 $b的值 为6*/
// 在对象上面
class talker{
private $data = 'Hi';
public function & get(){
return $this->data;
}
public function out(){
echo $this->data;
}
}
$aa = new talker();
$d = &$aa->get();
// 这里的$aa->get()得到数据地址,前面在一个&是把得到数据的地址赋值给$d,如果不加,就只把地址对应的值copy一份给$d了
// 和变量赋值一样道理, $a = $b; $a = &b;
$aa->out();
$d = 'How';
$aa->out();
$d = 'Are';
$aa->out();
$d = 'You';
$aa->out();
在如下:
class father{
public static $a = 5;
public function __construct()
{
echo 'a';
}
public function &factory()
{
//$a++;
return self::$a;
}
}
//$obj = new father();
//$b = &$obj->factory();
$b = father::factory(); // 注意这里如果 &father::factory(); $m 等于6
$b ++;
echo $b;
$m = father::factory();
echo $m;
//$obj1 = $obj;
//$c = &$obj1 -> factory();
//echo $c;
//php 对象,是当脚本运行完,才会自动释放对象
?>