php的一些理解(对象与类的概念以及相互关系理解)

╰半橙微兮° 2022-04-22 13:22 332阅读 0赞

先来看一段简单的代码:

  1. <?php
  2. class Person{
  3. public $name;
  4. public $age;
  5. public $sex;
  6. public function who()
  7. {
  8. echo $this->name." is ".$this->age." years old and is my ".$this->sex;
  9. }
  10. }
  11. class man{
  12. public $height;
  13. public $where;
  14. public function __construct($h,$w){
  15. $this->height = $h;
  16. $this->where = $w;
  17. }
  18. }
  19. $luyaran = new Person();
  20. $luyaran->name = "luyaran";
  21. $luyaran->age = "27";
  22. $luyaran->sex = "love";
  23. $luyaran->who();
  24. echo "<br>";
  25. $man = new man($luyaran,'142');
  26. echo serialize($luyaran);
  27. $luyaran_arr = array('name'=>'luyaran','age'=>'27','sex'=>'love');
  28. echo "<br>";
  29. echo serialize($luyaran_arr);
  30. echo "<br>";
  31. var_dump($man);
  32. echo "<br>";
  33. echo serialize($man);

输出结果如下:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x1eWFyYW4_size_16_color_FFFFFF_t_70

仔细看下输出结果,我们可以发现,我们序列化之后的对象,都会附带着所属的类的名称。那么这个类名,有什么用处呢???

它能够保证,当前对象在执行所属的类的方法(也就是这个对象自己所能执行的方法)时,可以正确的找到类的方法所在的代码空间(也就是这个对象它所拥有的方法存储在的类里)。

另外呢,当一个对象的实例变量,引用其它对象时,我们在序列化该对象时,也会对这个对象所引用的对象,进行实例化。

好,咱也不废话,来总结下,对象和类的概念以及之间的相互关系:

  1. 类是定义一系列属性和操作的模板,而对象,就是把属性进行实例化,完事交给类里面的方法,进行处理
  2. 对象的本质,就是数据,其本身不包含方法,但是其内部有一个指针,会指向一个类,而在这个类里面,是可以包含方法的
  3. 类里面的方法描述不同的属性,因而,会产生不同的表现或者结果
  4. 类和对象是不可分割的,有对象,就必定有一个类是和它相对应的,但是,由标量进行强制转化而产生的对象由PHP中,一个称为“孤儿”的stdClass类,来收容它

对于我们而言呢,如果需要设计或者创建一个类,那么我们就要从客观世界中,抽象出来一套规律,总结出这类事物的共性,并且让我们的这个类,可以与其它类,可以进行区分就好了。

我们区分类的依据就是其中的属性和方法,而区分类的具体方法,就是实例化一个对象。

好啦,本次记录就到这里了。

如果感觉不错的话,请多多点赞支持哦。。。

发表评论

表情:
评论列表 (有 0 条评论,332人围观)

还没有评论,来说两句吧...

相关阅读