PHP中的数据转换、类型约束

数据转换

转换基本语法:(目标类型)数据;

1,'bb'=>2.2,3,4.5);
        $o1 = (object)$arr;
        var_dump($o1);
?>
  1. 对象转换为对象:没有变化
  2. 数组转换为对象:数组的键名当作属性名,值为对应值
    如果是数字下标,对应属性不方便获取,所以通常适合于纯字符下标的数组。
  3. null转换为对象:空对象
输出结果:object(stdClass)#2 (0) { } 
  1. 其他标量数据转换为对象:属性名为固定的"scalar",值为该变量的值
        $s1 = 1;
        $s2 = 2.2;
        $s3 = 'abc';
        $s4 = true;
        $obj1 = (object)$s1;
        $obj2 = (object)$s2;
        $obj3 = (object)$s3;
        $obj4 = (object)$s4;
        echo "
";
            var_dump($obj1,$obj2,$obj3,$obj4);
        echo "
";
PHP中的数据转换、类型约束_第1张图片
打印结果

类型约束

其他语言中,类型约束是语法上的要求,定义一个变量的时候,必须指定类型,类型一旦确定,这个变量只能存储这个类型的数据,这是强类型语言的特点。但PHP是弱类型语言,无需为变量指定类型。

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

  • 场合:函数(或方法)的形参变量
  • 类型:对象类型(类名)、接口类型(接口名),数组类型(array),函数类型(callable)

示例1:方法参数中类型约束为为A(类名)

        function f1( A $p1){
            echo "
"; var_dump($p1); }

示例2:方法参数中类型约束为数组

        function f2(array $a){
            $c = count($a);
            return $c;
        }
        $r1 = f2(array(1,2,3,4,5,56));
        echo "
长度为".$r1;

你可能感兴趣的:(PHP中的数据转换、类型约束)