类的基础定义和概念(扩展1)
程序员文章站
2024-01-19 21:23:10
...
目录Table Of Contents
关于构造方法
任何给定的参数都会被传递到构造方法
class ShopProduct{ function __construct($title,$firstName,$mainName){ // 构造参数的特殊语法__construct }}$product1 = new ShopProduct('this is title','Peter','Peter Yuan'); //这里就是传入的参数,这里传入到类里面,也会直接传入到构造方法里面,参数按顺序排列
构造方法会在类被创建的时候自动执行
关于一些提醒
因为php是弱类型的语言,所以在变量声明的时候不需要指定数据类型,这样造就了方便,但是也带来了一点安全问题,所以需要增加一些措施1.必要时增加一些类型判断,例如is_bool()判断是否布尔值,返回true false
function outputAddresses($resolve){ if(! is_boll ($resolve)){ XXXXXXXXXXXXXX } }
2.添加注释例如这种:
/** * Determine if the given abstract type has been bound. * * @param string $abstract //宣布传入的参数类型 * @return bool //宣布返回的值 */ public function bound($abstract) { $abstract = $this->normalize($abstract); return isset($this->bindings[$abstract]) || isset($this->instances[$abstract]) || $this->isAlias($abstract); }
在面向对象开发中,“专注特定任务,忽略外界上下文”是一个很重要的设计原则。(个人理解就是专项专做,特例特行,方法和类都只需要专注于自己的任务,这样能够很好避免出错。)
你需要在检测类型,转换类型,依赖娘蒿清晰的文档之间仔细权衡。(但无论决定用哪一种,都应该提供文档)
我们不能依靠编译器来防止类型相关的bug,必须考虑到当非法数据类型的参数传递给方法时,会产生怎样的后果,我们不能完全相信客户端程序员,应该始终考虑如何在方法中处理他们引入的无用的信息。
关于类型提示(type hint)
- 类型提示可以检测使用参数的类型
- 方法的定义更加清晰,更容易知道传入的参数类型
没有类型提示的时候 class ShopProduct{ } class ShopProductWriter{ public function write($shopProduct){ } } $product1 = new ShopProduct(); $writer = new ShopProductWriter(); $writer->write($product1); 有类型提示的时候 public function write( ShopProduct $shopProduct){ //指定了ShopProduct的对象才能传入,这个就是类型提示 } ...... 在使用的时候 $writer->write($product1); //这样直接传入的时候代码能够自动检测到,如果不是ShopProduct对象的话,会出现报错的
推荐阅读
-
类的基础定义和概念(扩展1)
-
JavaEE基础day02 1.定义Java中的变量 四类八种 2.变量定义和使用的注意事项 3.数据类型的转换、强制数据类型转换4.算数运算符、比较运算符、逻辑运算符、赋值运算符、三元运算符
-
编写一个表示二维平面上的点的类MyPoint,满足以下条件: 1、定义private的成员变量x和y,表示点的x和y坐标,类型为double
-
python基础之面对对象基础类和对象的概念
-
Extjs4 类的定义和扩展实例
-
类的基础定义和概念(扩展2)
-
5GC-1.核心网的构架和一些基础概念
-
类的基础定义和概念(扩展1)
-
基础问题,PHP类的定义和调用
-
基础问题,PHP类的定义和调用