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

* 생성 방법 및 접근 제어(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 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구