面向对象(五)

对象的复制(克隆)clone(默认为浅克隆)
  浅克隆:只能克隆对象的!非对象!非资源!数据
  深克隆:对一个对象进行完全克隆;想要实现需要深克隆需要对对象使用魔术方法“_clone()”,并且在里面实现,认为复制浅克隆复制不了数据


对象遍历
  对象也可以使用foreach进行遍历,
  注意:
    1.只能遍历属性
    2.只能遍历看得到的属性
  举个例子:

  

php内置标准类

这个类内部没有任何属性,但是可以使用这个类的属性--不存在的属性。

数据转化为对象

  转换基本语法:  

    对象转换为对象:没有变化;

    数组转换为对象:数组的键名当做属性名,值为对应的值;

      通常数字下标对应属性并不方便操作( -> ),所以通常就适合纯数字下标的数组。   

  

    null转换为对象(空对象);

    

    其他标量数据转换为对象:属性名为固定的“scalar”,值为该变量的值。

    

类型约束

  许多语言中,类型约束是语法上的要求,在定义一个变量时,必须指定类型,并且以后也只能存储该类型数据(强类型语言)

  php属于弱类型语言,特点是变量无需指定类型,而且在其后也可以储存任何类型。

  注意:在php的较新语法中,在某些特定场合,针对某些特定类型,也可以进行语法约束;

    特定场合:函数(或者方法)的形参变量

    特定类型:对象类型(类名)、接口类型(接口名)、数组类型(array)、函数类型(callable);

  function f1 (类名 $p1){......}; 要求该参数只能使用该类的对象;

  function f1 (接口名 $p1){......};要求改参数只能舒勇实现该接口的对象;

  function f1 (array $q1){......};要求改参数只能使用数组;

  function f1 (callable $q1){......};要求改参数只能是一个函数或者方法,此时称之为回调函数或回调函数。

原文地址:https://www.cnblogs.com/sword082419/p/9166897.html