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强制类型转换,慎用!
PHP是一门弱类型的语言.这是它的优势和特点,但是有的时候你又不得不对类型进行相应的转换. 这个时候问题就来了.因为很多情况下,你会发现转换类型之后得到的数据和预期的值相差老大一截. 这里我以强制转换为整形作为例子. 看下面的代码,可以说你绝对不可能说出正确的答案.echo (int) 123.999999999999999; echo (int) -1.999999999999999;echo (int) -1.9999999999999999; echo (int) -0.999
-
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 类型转换函数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 变量类型的强制转换
也就是说,如果把一个字符串值赋给变量 var,var 就成了一个字符串.如果又把一个整型值赋给 var,那它就成了一个整数. PHP 中的类型强制转换和 C 中的非常像:在要转换的变量之前加上用括号括起来的目标类型. 复制代码 代码如下: <?php $foo = 10; echo "转换前:\$foo=".$foo; //输出一个整数 echo "<br/>" //输出:$foo=10 echo "<br/>";
-
浅析php数据类型转换
PHP 在变量定义中不需要(或不支持)明确的类型定义:变量类型是根据使用该变量的上下文所决定的.也就是说,如果把一个字符串值赋给变量 var,var 就成了一个字符串.如果又把一个整型值赋给 var,那它就成了一个整数. PHP 的自动类型转换的一个例子是加号"+".如果任何一个操作数是浮点数,则所有的操作数都被当成浮点数,结果也是浮点数.否则操作数会被解释为整数,结果也是整数.注意这并没有改变这些操作数本身的类型:改变的仅是这些操作数如何被求值以及表达式本身的类型. 类型强制转换允许
-
php学习之数据类型之间的转换代码
复制代码 代码如下: /*数据类型之间相互转换 * 一种是强制转换 * setType(变量,类型); //int,integer,float,double等等. * 这个函数将原变量的类型改变,用var_dump();可以查看变量 * * 在赋值前使用(类型)的形式,不会改变原变量的类型 * $a=(int)"123abc"; * * $变量=intval(变量或值); * $变量=floatval(变量或值); * $变量=stringval(变量或值); * * 注意:整型在内存
-
解析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中数据类型转换的三种方式
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 foreach 参数强制类型转换的问题
所以,为了防止这样的信息出现,我使用foreach的时候,都会把参数进行强制类型转换,形势如下: foreach((array)$arr as $key => $value); 这样做一直相安无事,就在前几天,突然出现了问题.我强制类型转换以后不能正常的调用object的方法了. 复制代码 代码如下: <?php class service implements Iterator{ function __construct($service_define,$filter=null){ $thi
随机推荐
- angularjs中使用ng-bind-html和ng-include的实例
- php批量删除数据
- 用JS判别浏览器种类以及IE版本的几种方法小结
- python遍历序列enumerate函数浅析
- 使用Python判断IP地址合法性的方法实例
- javascript 点击整页变灰的效果(可做退出效果)。
- 原生js封装二级城市下拉列表的实现代码
- Android 自定义SeekBar动态改变硬件音量大小实现和音量键的同步(推荐)
- jQuery实现切换页面过渡动画效果
- 浅析js绑定事件的常用方法
- 在PHP中使用反射技术的架构插件使用说明
- 全面掌握Win XP系统的压缩功能
- 深入了解PHP类Class的概念
- javascript+html5+css3自定义提示窗口
- C#操作注册表的方法
- php parse_str() 函数的定义和用法
- Linux办公一条龙之组件间的调用
- js 原生判断内容区域是否滚动到底部的实例代码
- Python爬虫实例_城市公交网络站点数据的爬取方法
- Android studio 连接手机调试操作步骤