헤드라인 PHP 중국어 웹사이트에서는 PHP 구성 방법 및 액세스 제어를 보여줍니다.

PHP 중국어 웹사이트에서는 PHP 구성 방법 및 액세스 제어를 보여줍니다.

Jun 28, 2018 pm 02:23 PM

* 생성 방법 및 접근 제어(querier 및 setter)

* 생성 방법:

* 1. 고정 메서드 이름: __constructor()

* 2. 기능: 객체 생성 시 자동으로 완료되어야 하는 작업을 선언하고, 객체 속성 초기화 또는 클래스의 메소드 자동 호출과 같은

* 3. 표준화된 클래스는 생성자 메소드를 하나만 가져야 하며 하나만 가질 수 있습니다

* 보충: 이중 밑줄로 시작하는 메소드를 매직 메소드라고 합니다. 일반적인 방법 비교:

* 1. 다양한 호출자: 개체에 의해 직접 호출되고 사용자에게는 권한이 없습니다.

* 2. 다양한 호출 시나리오: 특정 시나리오에서만 호출될 수 있으며 자동으로 호출됩니다.

* 일반적인 트리거 매직 메서드 호출 시나리오는 다음과 같습니다.

* 1. 개체 초기화, 2. 개체 속성 쿼리 및 설정, 4. 개체 직렬화, 5. 개체 소멸,

* class 생성자가 에서 선언되면 속성은 선언될 때 초기화될 필요가 없습니다

* 초기화가 더 이상 필요하지 않은데 왜 $name에 빈 문자열을 제공해야 하는지 궁금할 것입니다. $age는 0이고 $stature는 비어 있습니다. 배열?

* 이유는: PHP는 약한 유형의 언어입니다. 현재 배열과 객체는 이미 유형 힌트를 지원하지만 문자열과 같은 스칼라 및 숫자 유형은 여전히 ​​지원되지 않습니다. * 따라서 속성에 해당 유형을 나타내는 초기 값을 지정하면 유형 힌트 역할을 할 수 있으므로 좋은 습관입니다

​ *

​ * 클래스에서 생성 방법을 통해 클래스 속성을 초기화할 때, 클래스 외부에서 직접 값을 할당할 필요가 없습니다. 속성이 초기화됩니다.

* 따라서 보안 및 필요성을 위해 클래스의 속성을 외부에서 직접 가져올 필요가 없습니다. 데이터 캡슐화를 위해 클래스 속성은 외부에서 직접 접근할 수 없도록 해야 합니다.

* 클래스 속성을 수정하려면 private 키워드를 사용하세요.

* private: 이 클래스의 메서드 내에서만 접근할 수 있으며, 접근할 수 없습니다. 외부 또는 하위 클래스에서 접근 가능

* 클래스의 속성이 비공개인 경우, 접근 인터페이스를 외부에 제공해야 합니다

* 이 인터페이스는 클래스 메소드를 통해 구현됩니다. 접근 제어는 공개입니다. 클래스는 외부에서 액세스할 수 있습니다

* 요청이 적법하고 데이터가 안전하고 의미가 있는지 확인하기 위해 인터페이스 메서드에서 외부 액세스에 대해 필요한 감지를 수행할 수 있습니다

* 외부 쿼리(읽기) 작업의 경우 쿼리 메서드를 해결하도록 설정하세요. 문제

* 권장되는 쿼리 메소드 이름은 get + 속성 이름이며, 속성 이름의 첫 번째 문자는 대문자로 표시되며 카멜 케이스 명명 방법이 사용됩니다.

* 쿼리자는 일반적으로 If 매개변수를 전달할 필요가 없습니다. 전달되는 경우 일반적으로 ***

class GirlFriend2 
{
    //类属性:$name 姓名
    public $name = '';
    private $name = '';
    //类属性: 年龄
    public $age = 0;
    private $age = 0;
    
    //类属性: 身材三维stature['stætʃə]: 胸,腰,臀
    public $stature = [];
    private $stature = [];
    //声明构造方法
    public function __construct($name,$age, array $stature) {
        //初始化类成员属性
        $this->name = $name;
        $this->age = $age;
        $this->stature = $stature;
    }
      //查询器: getName() 获取女友姓名
   public function getName()
   {   
       //返回当前对象的name属性值
       return $this->name;
   }
    
    // 通过查询器限制非法用户对类属性的访问
   public function getName($yourName='')
   {
       if (!empty($yourName) && $yourName != '西门大官人' ) {
           return $this->name;
       }
       return '非法访问';
   }
    
    //一个方法中,尽可能只用一个return,否则会警告return语句过多,建议做如下修改
    //添加一个临时变量,这样可确保方法内只会一个return语句
    public function getName($yourName='')
    {
        //创建方法内部变量(局部变量),用来保存要返回的信息
        $msg = '非法访问';
        if (!empty($yourName) && $yourName != '西门大官人' ) {
            $msg = $this->name;
        }
        return $msg;
    }
    
    //下面对年龄和三维的访问,你也可以通过对姓名的限制方式进行访问控制
    //查询器: getAge() 获取女友年龄
    public function getAge()
    {   
        //返回当前对象的age属性值
//        return $this->age;
        //下面是改写一下当前方法,加入一些逻辑判断,仅做演示,实际功能自己扩展
        $msg = $this->age;
        if ($msg >= 50) {
            $msg .= ', 口味够重呀,大兄弟~~';
        } elseif ($msg < 18) {
            $msg .= &#39;, 未成年呢,求放过~~&#39;;
        }        
        return $msg;
    }
    
    //查询器: getStature() 获取女友身材信息
    public function getStature()
    {
        //返回当前对象的$stature属性值
        return $this->stature;
    } 
    
    
    /**
     * 设置器:也叫修改器,允许外部修改类的属性值
     * 参数一般有二个: 属性名与新的属性值
     * 因为属性名在方法中已经指定,这里只需要传入一个新的属性值即可
     */
    //下面通过设置器来控制对类属性的修改操作
    public function setName($value=&#39;&#39;)
    {
        return $this->name = $value;
    }
    
    //设置器更多的应用场景是会属性值进行过滤检测,例如年龄的范围
    public function setAge($value)
    {
        //年龄必须在18~120之间
        if (in_array($value,range(14,120))){
            $this->age = $value;
        }
    }
}
로그인 후 복사

입니다.

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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