zoukankan      html  css  js  c++  java
  • php内置标准类、数据转对象、类型约束、与类有关的魔术常量和方法、有关类和对象的系统函数和运算符

    内置标准类

    关键字:stdclass

    含义:在你需要一个类的时候直接实例化一个对象,而实例化对象的这个类名就是stdclass,然后想用什么属性直接定义就可以了

    数据转换为对象

    关键字:object

    1 、对象转对象 :没变化

    2、数组转换为对象:数组的键名当作属性名,值为对应值;一般情况下都是关联数组,因为索引数组转的意义不大 

    3、空(null)转对象:对象为空

    结果为:object(stdClass)#2(0){ }

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

    类型约束

    强类型语音中如java、c中。定义变量或方法时都会指定返回值是什么数据类型的如字符串,整形等等......

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

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

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

    可以对函数(或方法)的参数设定必须使用的类型。只能对对象,接口,数组和函数进行约束,如下所示:

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

    l function f1(接口名 $p1){....}:要求该参数只能使用实现该接口的对象;

    l function f1(array $p1){....}:要求该参数只能使用数组;

    l function f1(callable $p1){....}:要求该参数只能是一个函数或方法,此时称之为回调函数(方法)

    与类有关的魔术常量和方法

    魔术常量 :

      __CLASS__,:获取其所在的类的类名。

      __METHOD__:获取其所在的方法的方法名。

      class  A{

        function  f1(){

          echo __CLASS__; //输出“A”

          echo __METHOD__; //输出“f1”

          //注意:get_class()也可以得到类名,但其必须有个“对象”

          }

      }

    魔术方法 :

      1.__sleep():序列化时会自动调用

      2.__wakeup():反序列化时会自动调用

      3.__tostring():把对象当做字符串来处理时会调用

      4.__invoke():把对象当做方法来处理时会调用

    有关类和对象的系统函数和运算符

    class_exists(), :判断某个类是否存在(定义过)

    interface_exists(), :判断接口是否存在

    get_class():获取某个对象的“所属类名”

    get_parent_class(), :获取某个对象的“所属父类的类名”

    get_class_methods(), :获取一个类的所有方法,返回一个索引数组,就是这些方法的名字。

    get_class_vars(), :获取一个类的所有属性,返回一个数组,下标为属性名,值为属性值。

    get_declared_classes():获得所有声明过的类(含系统中的类)

    is_object():判断是否对象

    get_object_vars():获得对象的所有属性,返回一个数组,下标为属性名,值为属性值

  • 相关阅读:
    java实验报告(实验五)
    java实验报告(实验三)
    java读书笔记二
    总结报告
    Android实践项目汇报(总结)-修改
    Android实践项目汇报(总结)
    Android实践项目汇报(四)
    Android实践项目汇报(三)
    Android实践项目汇报(二)
    Android实践项目汇报-改(一)
  • 原文地址:https://www.cnblogs.com/cp123/p/9154084.html
Copyright © 2011-2022 走看看