首頁 > 後端開發 > php教程 > 类的基础定义和概念(扩展1)

类的基础定义和概念(扩展1)

WBOY
發布: 2016-06-20 12:25:35
原創
1000 人瀏覽過

目录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)

  1. 类型提示可以检测使用参数的类型
  2. 方法的定义更加清晰,更容易知道传入的参数类型
    没有类型提示的时候    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对象的话,会出现报错的
登入後複製
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板