목차
关于构造方法
关于一些提醒
关于类型提示(type hint)
백엔드 개발 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'); //这里就是传入的参数,这里传入到类里面,也会直接传入到构造方法里面,参数按顺序排列
로그인 후 복사

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

关于一些提醒

因为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对象的话,会出现报错的
로그인 후 복사
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄) 11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄) Mar 03, 2025 am 10:49 AM

11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄)

Laravel의 플래시 세션 데이터로 작업합니다 Laravel의 플래시 세션 데이터로 작업합니다 Mar 12, 2025 pm 05:08 PM

Laravel의 플래시 세션 데이터로 작업합니다

Laravel Back End : Part 2, React가있는 React 앱 구축 Laravel Back End : Part 2, React가있는 React 앱 구축 Mar 04, 2025 am 09:33 AM

Laravel Back End : Part 2, React가있는 React 앱 구축

Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Mar 12, 2025 pm 05:09 PM

Laravel 테스트에서 단순화 된 HTTP 응답 조롱

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 Mar 14, 2025 am 11:42 AM

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법

Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Mar 13, 2025 pm 12:08 PM

Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트

라 라벨에서 알림 라 라벨에서 알림 Mar 04, 2025 am 09:22 AM

라 라벨에서 알림

2025 PHP 상황 조사 발표 2025 PHP 상황 조사 발표 Mar 03, 2025 pm 04:20 PM

2025 PHP 상황 조사 발표

See all articles