PHP类型约束用法示例
本文实例讲述了PHP类型约束用法。分享给大家供大家参考,具体如下:
在强类型语言中,类型约束是语法上的要求,即定义一个变量的时候,必须指定类型,并以后也只能存储该类型数据;
php是弱类型,其特点是无需为变量指定类型,而且在其后也可以存储任何类型,不过在php的新语法中,在某些特定场合,针对某些特定类型,也可进行语法约束。
特定场合:函数(方法)的形参变量
特定类型:对象类型(类名)、接口类型(接口名)、数组类型(array)、函数类型(callable)
即可以对函数(方法)的参数设定必须使用的类型。只能对对象、接口、数组和函数进行约束。
function f(类名 $p){} // 要求参数只能使用该类的对象 function f(接口名 $p){} // 要求该参数只能使用实现该接口的对象 function f(arrary $p){} // 要求该参数只能使用数组 function f(callable $p) // 要求该参数只能是一个函数(方法),此时称之为回调函数(方法)
<?php class A{} function f(A $p){} $obj = new A(); f($obj);
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
相关推荐
-
解析PHP将对象转换成数组的方法(兼容多维数组类型)
复制代码 代码如下: /** * @author 我们 * @date 2013-6-21 * @todo 将对象转换成数组 * @param unknown_type $obj * @return unknown */ function object_to_array($obj){ $_arr = is_object($obj) ? get_object_vars($obj) :$obj; foreach ($_arr as $key=>$val){ $val = (is_
-
PHP中的类型约束介绍
PHP的类方法和函数中可实现类型约束,但参数只能指定类.数组.接口.callable 四种类型,参数可默认为NULL,PHP并不能约束标量类型或其它类型. 如下示例: 复制代码 代码如下: <?php class Test { public function test_array(array $arr) { print_r($arr); } public function test_class(Test1 $test1 = null)
-
php foreach 参数强制类型转换的问题
所以,为了防止这样的信息出现,我使用foreach的时候,都会把参数进行强制类型转换,形势如下: foreach((array)$arr as $key => $value); 这样做一直相安无事,就在前几天,突然出现了问题.我强制类型转换以后不能正常的调用object的方法了. 复制代码 代码如下: <?php class service implements Iterator{ function __construct($service_define,$filter=null){ $thi
-
PHP中数据类型转换的三种方式
PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: 1.(int).(integer):转换成整形 2.(float).(double).(real):转换成浮点型 3.(string):转换成字符串 4.(bool).(boolean):转换成布尔类型 5.(array):转换成数组 6.(object):转换成对象 PHP数据类型有三种转换方式: 1.在要转换的变量之前加上用括号括起来的目标类型 2.使用3个具体类型的转换函数,intval().floatval().strval
-
PHP 类型转换函数intval
PHP代码 $id = intval($_GET['id']); intval (PHP 4, PHP 5) intval - Get the integer value of a variable Description int intval ( mixed $var [, int $base= 10 ] ) Returns the integer value of var , using the specified base for the conversion (the default i
-
浅谈PHP强制类型转换,慎用!
PHP是一门弱类型的语言.这是它的优势和特点,但是有的时候你又不得不对类型进行相应的转换. 这个时候问题就来了.因为很多情况下,你会发现转换类型之后得到的数据和预期的值相差老大一截. 这里我以强制转换为整形作为例子. 看下面的代码,可以说你绝对不可能说出正确的答案.echo (int) 123.999999999999999; echo (int) -1.999999999999999;echo (int) -1.9999999999999999; echo (int) -0.999
-
php学习之数据类型之间的转换代码
复制代码 代码如下: /*数据类型之间相互转换 * 一种是强制转换 * setType(变量,类型); //int,integer,float,double等等. * 这个函数将原变量的类型改变,用var_dump();可以查看变量 * * 在赋值前使用(类型)的形式,不会改变原变量的类型 * $a=(int)"123abc"; * * $变量=intval(变量或值); * $变量=floatval(变量或值); * $变量=stringval(变量或值); * * 注意:整型在内存
-
PHP 变量类型的强制转换
也就是说,如果把一个字符串值赋给变量 var,var 就成了一个字符串.如果又把一个整型值赋给 var,那它就成了一个整数. PHP 中的类型强制转换和 C 中的非常像:在要转换的变量之前加上用括号括起来的目标类型. 复制代码 代码如下: <?php $foo = 10; echo "转换前:\$foo=".$foo; //输出一个整数 echo "<br/>" //输出:$foo=10 echo "<br/>";
-
PHP学习笔记(三):数据类型转换与常量介绍
一.PHP数据类型相互转换 1.强制转换 复制代码 代码如下: // bool,int,float,string,array,object,null bool settype ( mixed $var , string $type ) 1)会改变原变量的类型 复制代码 代码如下: $a= "123a"; // string settype($a, "int"); // 勿遗漏双引号 var_dump($a); 2)在赋值前定义,不改变原变量类型 复制代码 代码如下:
-
浅析php数据类型转换
PHP 在变量定义中不需要(或不支持)明确的类型定义:变量类型是根据使用该变量的上下文所决定的.也就是说,如果把一个字符串值赋给变量 var,var 就成了一个字符串.如果又把一个整型值赋给 var,那它就成了一个整数. PHP 的自动类型转换的一个例子是加号"+".如果任何一个操作数是浮点数,则所有的操作数都被当成浮点数,结果也是浮点数.否则操作数会被解释为整数,结果也是整数.注意这并没有改变这些操作数本身的类型:改变的仅是这些操作数如何被求值以及表达式本身的类型. 类型强制转换允许
随机推荐
- VBS教程:方法-DriveExists 方法
- 原生JS实现首页进度加载动画
- JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
- 可以修改脚本自身运行次数的vbs(Self modifying script)
- C语言中6组指针和自增运算符结合方式的运算顺序问题
- Python中字典创建、遍历、添加等实用操作技巧合集
- js实现键盘Enter键提交表单的方法
- Python中用于去除空格的三个函数的使用小结
- php str_pad() 将字符串填充成指定长度的字符串
- Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
- jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
- [js高手之路]单例模式实现模态框的示例
- Mysql启动的方式(四种)
- JavaScript继承方式实例
- jquery实现微博文字输入框 输入时显示输入字数 效果实现
- jQuery中change事件用法实例
- C#实现appSettings节点读取与修改的方法
- Linux tomcat下catalina.out日志文件分割
- GridView单元格合并
- vista和win7在windows服务中交互桌面权限问题解决方法:穿透Session 0 隔离