在之前的文章PHP方法参数的那点事儿中,我们讲过关于PHP方法参数的一些小技巧.今天,我们带来的是更加深入的研究一下PHP中方法的参数类型. 在PHP5之后,PHP正式引入了方法参数类型约束.也就是如果指定了方法参数的类型,那么传不同类型的参数将会导致错误.在PHP手册中,方法的类型约束仅限于类.接口.数组或者callable回调函数.如果指定了默认值为NULL,那么我们也可以传递NULL作为参数. class A{} function testA(A $a){ var_dump($a); }
建议26: 提防包装类型的null值 我们知道Java引入包装类型(Wrapper Types)是为了解决基本类型的实例化问题,以便让一个基本类型也能参与到面向对象的编程世界中.而在Java 5中泛型更是对基本类型说了“不”,如想把一个整型放到List中,就必须使用Integer包装类型.我们来看一段代码: public class Client { // 计算list中所有元素之和 public static int f(List<Integer> list) { int count = 0
是使用泛型时,T默认情况下是不可以被初始化的,只能通过传值来赋值,这个时候可以使用类型约束来保证T是可以被约束的. .NET支持的类型参数约束有以下五种: where T: struct //T必须是一个结构类型 where T: class //T必须是一个类(class)类型,不是结构(structure)类型 where T: new() //T必须要有一个无参构造函数 where T: NameOfBaseClass //T必须继承名为NameOfBaseClass的类 where T: