找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1777|回复: 0
打印 上一主题 下一主题

PHP中的类型约束介绍

[复制链接]

2500

主题

2513

帖子

7520

积分

论坛元老

Rank: 8Rank: 8

积分
7520
跳转到指定楼层
楼主
发表于 2018-2-14 05:46:17 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

            PHP的类方法和函数中可实现类型约束,但参数只能指定类、数组、接口、callable 四种类型,参数可默认为NULL,PHP并不能约束标量类型或其它类型。
如下示例:
[U]复制代码[/U] 代码如下:
test_array(array(1));
$test->test_class(new Test1());
$test->test_callable('print_r', 1);
$test->test_interface(new ArrayObject(array()));
$test->test_class_with_null();
那么对于标量类型如何约束呢?
PECL扩展库中提供了SPL Types扩展实现interger、float、bool、enum、string类型约束。
[U]复制代码[/U] 代码如下:
$int  = new  SplInt ( 94 );

try {
     $int  =  'Try to cast a string value for fun' ;
} catch ( UnexpectedValueException $uve ) {
    echo  $uve -> getMessage () .  PHP_EOL ;
}

echo  $int  .  PHP_EOL ;
/*
运行结果:
Value not an integer
94
*/
SPL Types会降低一定的灵活性和性能,实际项目中三思而行。
            
            
您可能感兴趣的文章:
  • PHP 类型转换函数intval
  • PHP 变量类型的强制转换
  • php foreach 参数强制类型转换的问题
  • php学习之数据类型之间的转换代码
  • 浅谈PHP强制类型转换,慎用!
  • 解析PHP将对象转换成数组的方法(兼容多维数组类型)
  • 浅析php数据类型转换
  • PHP中数据类型转换的三种方式
  • PHP学习笔记(三):数据类型转换与常量介绍
  • PHP类型约束用法示例
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端