当前位置: 首页 > 后端技术 > PHP

PHP类方法的类型提示

时间:2023-03-29 15:00:46 PHP

参数变量可以是任何基本类型的数据,参数默认也可以是任何类型的对象,方法定义时可能会出现一些问题。classShopProductWriter{//接受ShopProduct对象的方法publicfunctionwrite($shopProduct){$str="{$shopProduct->title}:".$shopProduct->getProducer()。"({$shopProduct->price})\n";打印$str;}}$product1=newShopProduct("MyAntonia","Willa","Cather",5.99);$write=newShopProductWriter();$write->write($product1);//我的Antonia:WillaCather(5.99)将参数变量命名为$shopProduct,表明该方法需要一个ShopProduct对象,但并不需要它。也就是说,可能会收到意想不到的对象或原始类型,但在实际处理$ShopProduct之前不会知道。为了解决参数类型不强制的问题,PHP5引入了类的类型提示(typehint)。要为方法参数添加类型提示,只需将类名放在要约束的方法参数之前。publicfunctionwrite(ShopProduct$shopProduct){//...}write()方法现在只接受包含ShopProduct对象的$shopProduct参数。将任何其他对象传递给该方法将产生严重错误。通过参数的类型提示,不再需要在使用参数之前对参数进行类型检查。类型提示仅在运行时生效,即类型提示仅在将错误的对象传递给方法时才会报告错误。类型提示不能用于强制参数是某些原始数据类型,例如字符串和整数。如果要处理基本数据类型,可以在方法中使用is_int()等类型检查函数。但是可以强制使用数组作为参数:functionsetArray(array$storeArray){$this->array=$storeArray;}PHP5.1增加了对数组hints的支持,以后的版本增加了对null的支持默认value为参数提示,即参数可以指定为具体类型或空值:functionsetWriter(ObjectWrite$objWrite=null){$this->writer=$objWrite;}