Table des matières
关于构造方法
关于一些提醒
关于类型提示(type hint)
Maison développement back-end tutoriel php 类的基础定义和概念(扩展1)

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

Jun 20, 2016 pm 12:25 PM

目录Table Of Contents

关于构造方法

任何给定的参数都会被传递到构造方法

class ShopProduct{  function __construct($title,$firstName,$mainName){ // 构造参数的特殊语法__construct  }}$product1 = new ShopProduct('this is title','Peter','Peter Yuan'); //这里就是传入的参数,这里传入到类里面,也会直接传入到构造方法里面,参数按顺序排列
Copier après la connexion

构造方法会在类被创建的时候自动执行

关于一些提醒

因为php是弱类型的语言,所以在变量声明的时候不需要指定数据类型,这样造就了方便,但是也带来了一点安全问题,所以需要增加一些措施1.必要时增加一些类型判断,例如is_bool()判断是否布尔值,返回true false

      function outputAddresses($resolve){        if(! is_boll ($resolve)){          XXXXXXXXXXXXXX        }      }
Copier après la connexion

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);      }
Copier après la connexion

在面向对象开发中,“专注特定任务,忽略外界上下文”是一个很重要的设计原则。(个人理解就是专项专做,特例特行,方法和类都只需要专注于自己的任务,这样能够很好避免出错。)

你需要在检测类型,转换类型,依赖娘蒿清晰的文档之间仔细权衡。(但无论决定用哪一种,都应该提供文档)

我们不能依靠编译器来防止类型相关的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对象的话,会出现报错的
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) 11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) Mar 03, 2025 am 10:49 AM

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium)

Travailler avec les données de session Flash dans Laravel Travailler avec les données de session Flash dans Laravel Mar 12, 2025 pm 05:08 PM

Travailler avec les données de session Flash dans Laravel

Construisez une application React avec un Laravel Back End: Partie 2, React Construisez une application React avec un Laravel Back End: Partie 2, React Mar 04, 2025 am 09:33 AM

Construisez une application React avec un Laravel Back End: Partie 2, React

Misque de réponse HTTP simplifié dans les tests Laravel Misque de réponse HTTP simplifié dans les tests Laravel Mar 12, 2025 pm 05:09 PM

Misque de réponse HTTP simplifié dans les tests Laravel

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Mar 14, 2025 am 11:42 AM

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST

12 meilleurs scripts de chat PHP sur Codecanyon 12 meilleurs scripts de chat PHP sur Codecanyon Mar 13, 2025 pm 12:08 PM

12 meilleurs scripts de chat PHP sur Codecanyon

Annonce de l'enquête sur la situation en 2025 PHP Annonce de l'enquête sur la situation en 2025 PHP Mar 03, 2025 pm 04:20 PM

Annonce de l'enquête sur la situation en 2025 PHP

Notifications à Laravel Notifications à Laravel Mar 04, 2025 am 09:22 AM

Notifications à Laravel

See all articles