原生foreach遍历
public $name="cyg"; public $sex="男"; const BIRTHPLACE="地球"; public function eat($food) { "正在吃{$food}"; } } $hanMM=new Humanity(); foreach ($hanMM as $key => $value) { # code... var_dump("下标: ".$key); echo " "; var_dump("值: ".$value); echo " "; }
foreach的遍历核心在于一次foreach遍历完是一次键值对遍历完.
public $name="cyg"; public $sex="男"; const BIRTHPLACE="地球"; public function eat($food) { "正在吃{$food}"; } } class Room { } $hanMM=new Humanity(); var_dump($hanMM instanceof Humanity);
解析: 判断这个$hanMM这个对象是不是属于Humanity这个类所创建出来的.
var_dump(对象 instanceof 类);
public $name="cyg"; public $sex="男"; const BIRTHPLACE="地球"; public function eat($food) { "正在吃{$food}"; } } class Room { } $hanMM=new Humanity(); var_dump(get_class($hanMM));
解析:
这个对象是哪个类创建出来的.
$a=10; $b=&$a; $a=100; var_dump($a); var_dump($b);
普通类型的引用传递&是我们都是一样的
对象类型的引用传递:
public $name="cyg"; public $sex="女"; } $hanMM=new Humanity(); $xiaoHan=$hanMM; $hanMM->name='小韩'; var_dump($xiaoHan); var_dump($hanMM);
clone的核心在于复制,不是引用,所以和引用相反的
与=的区别:public $name; public $sex; public $iq=10; const BIRTHPLACE='地球'; //类方法就是一段等待执行的代码,相对于该类所有的实例都是一样的,方法里面本身并不保存数据,在该类所有的实例中方法的代码其实是共享的! public function eat($food){ echo "{$this->name}正在吃{$food}!"; } } $hanMM=new Humanity(); $hanMM->name='韩梅梅'; $hanMM->sex='女'; $a=new Humanity(); $a->name='韩梅梅'; $a->sex='女'; $xiaoHan=$hanMM; $daHan=clone $hanMM; var_dump($hanMM==$a); var_dump($hanMM===$a); var_dump($xiaoHan===$hanMM); var_dump($daHan===$hanMM);
解析:
第一:同一个类下的对象==可以,===不行,原因是他们值相等。但是地址不同.
第二:clone只是复制,和原有什么关系都没有。