类型约束


类型约束

PHP 5 可以使用类型约束。函数的参数可以指定只能为对象(在函数原型里面指定类的名字),php 5.1 之后也可以指定只能为数组。 注意,即使使用了类型约束,如果使用NULL作为参数的默认值,那么在调用函数的时候依然可以使用NULL作为实参。

Example #1 类型约束示例

<?php
//如下面的类
class MyClass
{
    
/**
     * 测试函数
     * 第一个参数必须为类OtherClass的一个对象
     */
    
public function test(OtherClass $otherclass) {
        echo 
$otherclass->var;
    }


    
/**
     * 另一个测试函数
     * 第一个参数必须为数组 
     */
    
public function test_array(array $input_array) {
        
print_r($input_array);
    }
}

//另外一个类
class OtherClass {
    public 
$var 'Hello World';
}
?>

函数调用的参数与定义的参数类型不一致时,会抛出一个致命错误。

<?php
// 两个类的对象
$myclass = new MyClass;
$otherclass = new OtherClass;

// 致命错误:参数1必须是类OtherClass的一个对象
$myclass->test('hello');

// 致命错误:参数1必须为类OtherClass的一个实例
$foo = new stdClass;
$myclass->test($foo);

// 致命错误:参数1不能为null
$myclass->test(null);

// 正确:输出 Hello World 
$myclass->test($otherclass);

// 致命错误:参数1必须为数组
$myclass->test_array('a string');

// 正确:输出 数组
$myclass->test_array(array('a''b''c'));
?>

类型约束不只是用在类的成员函数里,也能使用在函数里。

<?php
// 如下面的类
class MyClass {
    public 
$var 'Hello World';
}

/**
 * 测试函数
 * 第一个参数必须是类MyClass的一个对象
 */
function MyFunction (MyClass $foo) {
    echo 
$foo->var;
}

// 正确
$myclass = new MyClass;
MyFunction($myclass);
?>

类型约束允许NULL值:

<?php

/* 接受NULL值 */
function test(stdClass $obj NULL) {

}

test(NULL);
test(new stdClass);

?>

类型约束只支持对象数组(php 5.1之后)两种类型。而不支持整型字符串类型。


«  对象比较
» 后期静态绑定
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 做“蜜汁番茄” 流年触动了我的心灵作文900字 读《根》有感作文500字 家人作文700字 小 鸡 2016房屋抵押担保承诺书 村支书先进性教育 评《纳尼亚传奇2》 离歌串词主持人开场白;离歌歌词 留有余地的美】 小学五年级作文600字:五彩的梦 狐狸小姐作文1600字 华山漫笔 我第一次照顾生病的母亲500字 海底探险作文500字 小学五年级作文500字:充满爱心的拍卖会 超越自己_初中作文600字 苏教版九年级下册期中测试题2 一别一场泪 关于快乐关于学习的演讲稿 春节放鞭炮作文200字 医院网络管理求职信范文 数学作业检查小结 简朴是美德—读《一夜的工作》有感作文700字 永远在路上观后感范文两篇 关于玫瑰花的作文 读懂自己的日志,感受生活的厚积(枫叶红了发表日志七夕节感言) 人生励志哲理小故事 小学五年级作文450字:校园里的旗杆 构建和谐邮政企业的思考 2015春节恋人间的新春祝福语 我有一个“小金库” 监察干部创优争先心得体会 妇幼保健院精神文明创建工作总结 商业银行经营信贷的风险与对策研究 中秋节心得体会 永远爱您 国际货币体系失衡对中国经济影响分析 赠苏少府赴任江南余时还京 【精品】个人思想工作总结 我那回不去的青春 学校的花坛 痒作文100字 把蝴蝶翅膀当画布 (九十二)酒,还有文艺 读《十一支康乃馨》有感 幸福离我好远作文900字 关于发展铁岭市有机食品的调查_调查报告 战友之间有大爱 使人伟大的原动力是什么

Copyright © 2016 phpStudy |