찾다
백엔드 개발PHP 문제PHP의 클래스 메소드에 대한 액세스 권한은 무엇입니까?

PHP에는 클래스 메서드에 대한 세 가지 유형의 액세스 권한이 있습니다. 1. 클래스 내부, 하위 클래스 또는 클래스 외부에서 제한 없이 사용할 수 있는 공개 유형(공개) 2. 보호 유형(보호됨) , 프라이빗(Private) 유형(private)은 클래스 내부에서만 사용할 수 있고, 클래스 외부나 서브클래스에서는 사용할 수 없습니다.

PHP의 클래스 메소드에 대한 액세스 권한은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

클래스의 멤버 메서드

클래스에 정의된 함수를 멤버 메서드라고 합니다. 함수와 멤버 메서드의 유일한 차이점은 함수는 독립적인 함수를 구현하는 반면, 멤버 메서드는 클래스에서 동작을 구현하고 클래스의 일부라는 것입니다.

클래스에서 여러 멤버 메서드를 선언할 수 있습니다. 멤버 메서드 선언은 함수 선언과 동일합니다. 그러나 멤버 메서드를 선언할 때 함수 키워드 앞에 일부 액세스 권한 수정자를 추가하여 액세스를 제어할 수 있습니다. 공개, 비공개, 보호 등과 같은 권리.

메서드 액세스 권한

세 가지 액세스 권한이 있습니다:

public: 공개 유형, 클래스 내부, 하위 클래스 또는 클래스 외부에서 제한 없이 사용할 수 있습니다.

특징: 외부 호출 가능, 내부 호출 가능 , subclass callable

서브 클래스에서는 self::var를 통해 공용 메소드나 속성을 호출할 수 있고, parent::method는 상위 클래스 메소드를 호출할 수 있습니다

인스턴스에서는 $obj- >var를 전달하여 메소드를 호출할 수 있습니다. 또는 공개 유형의 속성

protected: 보호 유형, 클래스 및 하위 클래스 내부에서 사용할 수 있지만 클래스 외부에서는 사용할 수 없습니다.

특징: 외부에서는 호출할 수 없고 내부에서는 호출 가능 또는 속성은 self::var를 통해 호출할 수 있고 parent::method는 상위 클래스 메서드를 호출할 수 있습니다

인스턴스에서는 $obj->var 속성을 통해 보호 유형 메서드나 메서드를 호출할 수 없습니다.

private: private 유형. ,

은 클래스 내부에서만 사용할 수 있고, 클래스 외부나 하위 클래스에서는 사용할 수 없습니다. 기능: 외부 호출 불가, 내부 호출 가능, 서브클래스 호출 불가

이 유형의 속성 또는 메소드는 이 클래스에서만 사용할 수 있으며 이 클래스의 인스턴스, 서브클래스 또는 서브클래스의 인스턴스에서는 호출할 수 없습니다. 속성 및 메서드

설명:

메서드를 생성할 때 지정하지 않으면 기본적으로 공개로 설정됩니다.

<?php
 class EMBA_student  // 声明EMBA学生类
      {
          //用private来定义私有类的属性
          private $no; //序号
          private $name; // 姓名
          private $gender; //性别
          private $age; //年龄

          //方法
          //方法1 ,私有方法,输出年龄

       private   function show_age()
          {

  echo"我的年龄是:$this->age<br />";

              }
//方法2,公有方法,回答年龄
public function ask_age()
{
    $this->show_age();
    }
//方法3,设置数据
function set_data($arr){
    $this->no=$arr["no"];
        $this->name=$arr["name"];
            $this->gender=$arr["gender"];
                $this->age=$arr["age"];
    }
          }

 //实例化一个对象
 $s=new EMBA_student;
 $arr=array("no"=>"1","name"=>"Qian Zhang","gender"=>"Female","age"=>"33","department"=>"商业营销");
 $s->set_data($arr);

//echo $s->age;//Fatal error: Cannot access private property EMBA_student::$age in C:\xampp\htdocs\v\v.php on line 47
//$s->show_age(); //Fatal error: Call to private method EMBA_student::show_age() from context &#39;&#39; in C:\xampp\htdocs\v\v.php on line 48

 $s->ask_age();

  ?>

결과:

我的年龄是:33

보충: self와 parent의 차이점

a) 이 두 개체는 일반적으로 하위 클래스에서 사용됩니다. 주요 차이점은 self는 상위 클래스에서 공개 또는 보호 속성을 호출할 수 있지만 부모는 호출할 수 없다는 것입니다.

b).self:: $this와 달리 $this는 현재 클래스의 정적 멤버(메서드 및 속성)를 나타냅니다. 현재 개체를 나타냅니다

추천 학습: "

PHP 비디오 튜토리얼

"

위 내용은 PHP의 클래스 메소드에 대한 액세스 권한은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

See all articles

핫 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 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

메모장++7.3.1

메모장++7.3.1

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

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음