类中函数的参数能指定为类的属性吗 function useUSB(USB $usb)这个 USB 是类型声明,如果 $usb 不是 USB 类型的话,将会有语法错 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是颠覆了你的理解的话,那只能说明你的理解是有问题的所以不是颠覆而应是增强了理解比如 USB 类有一个 load 方法,而你function useUSB($usb) { $usb->load();}这样定义,这样调用 $obj->useUSB('abc');这就会在 $usb->load() 处出现 不存在 load 方法 的错误于是你就需要在 $usb->load() 之前检查 $usb 是否是对象;是否存在 load 方法而加上类型声明后,这个检查工作就由 php 解析器去完成了 你还是没有理解我所说的问题,我的意思是说函数useUSB这个函数中的第一个参数USB是接口类USB,我不理解的是这里,怎么函数的参数会是一个类呢?我从很多教程中所看到的,函数中的参数就是一个可量,你定义为多少,一调用就出来了,可是这个类,是怎么回事呢,很多教程中压根没有提到。就是举一反三吧,感觉也不可思议。我不理解的是这里。 是你没有理解我说的意思!函数的参数是以逗号分隔的而 USB $usb 间有逗号吗?显然是没有的,那么 USB $usb 就是一个参数了 function use(USB $usb){}$usb是由USB类实例化的一个对象指针比如 $usb1 = USB(); $usb2 = USB(); use($usb1); use($usb2); 有点开窍了,通过二位的解答,正下有点领悟,不知我这样理解对不,函数中的()里就是一个表达式,这个表达式中可以用声明类的方法,比如我这个例子中USB $usb,是不是等价于$usb=new USB 这个例子中USB $usb表示的是 $usb 必须是类 USB 或继承于 USB 的某个类的实例 $usb可以是usb的属性或方法吗??? 不可以,必须是实例function use(USB $usb) { }相当于function use($usb) { if(! is_a($usb, 'USB')) return 'error';} PHP5.5 新特性初探 curl 怎么看请求头 网站视频播放器,用的是wampserver,apache服务器,服务器下的中文名文件无法访问? php 初级入门,不知道这个什么意思 自定义函数问题 随机读取数据的 问题 求MYSQL语句 js 控制checkbox 为只读 在虚拟主机上,我有没有权限修改php.ini文件呢 那个教我用zend的朋友,来UP啦,这两天懒死啦,现在开贴相谢 PHP如何链接WebService 大家帮忙看看我这是什么错误
所以不是颠覆而应是增强了理解
比如 USB 类有一个 load 方法,而你
function useUSB($usb) {
$usb->load();
}
这样定义,这样调用 $obj->useUSB('abc');
这就会在 $usb->load() 处出现 不存在 load 方法 的错误
于是你就需要在 $usb->load() 之前检查 $usb 是否是对象;是否存在 load 方法
而加上类型声明后,这个检查工作就由 php 解析器去完成了
函数的参数是以逗号分隔的
而 USB $usb 间有逗号吗?
显然是没有的,那么 USB $usb 就是一个参数了
function use(USB $usb){}
$usb是由USB类实例化的一个对象指针
比如 $usb1 = USB(); $usb2 = USB(); use($usb1); use($usb2);
表示的是 $usb 必须是类 USB 或继承于 USB 的某个类的实例
相当于
function use($usb) {
if(! is_a($usb, 'USB')) return 'error';
}