类型约束


类型约束

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 交通频道 作文范文 上街作文500字 我的小猫咪作文400字 个人简历自我介绍模板 2015部队学习十八大精神思想汇报范文 《飘零的黄叶》 高手都是另类的 1月预备党员思想汇报模板:坚定信念 英雄精神永在1200字 [图文]关于养宠物的建议书 国旗下的讲话:做事要从小事做起 分式的乘除导学案 记忆太好 《画说哲学》读书笔记700字 我是一台显微镜作文700字 2015幼儿园教师职责 读《植物妈妈有办法》有感 描写初夏黄昏的句子 抗战胜利70周年纪念日演讲稿范文 秋游崇武古城作文1100字 《阳光下的梦》(陕西大荔李喜来) 樱与小狼的前缘作文1000字 2015一个大四女生的实习报告_[实习报告] 给爸爸画像作文600字 党政领导中青年干部学习考察的心得体会 三八妇女节浪漫活动方案 记忆的画册——蒙蒙雨中情作文400字 同桌是个假小子作文1200字 市建设局依法行政工作意见 2016年述职述廉述责报告 未来的大门 有助于儿童诗学习的手抄报 落叶吟 他永远在我心中作文 2014人力资源管理实习报告优秀范文 九月馨香醉佳节! 山乡野味 土鳖与蟑螂 我乘书游海洋 文字世界 合同期工作小结2篇 “包厢”里的歌声 和常常批评你的人交朋友 你会怀念么 用万籁俱寂造句 “0”分试卷800字 这个夏天,我很快乐作文400字 是金子,总会发光 安静的近义词 堕落的花瓣没有幸福的眼泪 最关心我的人是妈妈400字

Copyright © 2016 phpStudy |