>백엔드 개발 >PHP 문제 >PHP 회원에는 여러 유형이 있습니다.

PHP 회원에는 여러 유형이 있습니다.

青灯夜游
青灯夜游원래의
2023-02-27 09:55:163810검색

PHP 멤버에는 세 가지 유형이 있습니다. 1. 클래스에 정의된 변수인 멤버 속성(클래스 속성)은 클래스에 데이터를 저장하는 데 사용됩니다. 2. 클래스에 정의된 함수인 멤버 메서드는 다음과 같습니다. 객체 사건을 해결합니다. 3. 클래스 상수는 클래스에 정의된 상수이며 const 키워드를 사용하여 정의됩니다.

PHP 회원에는 여러 유형이 있습니다.

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

1. 개념

클래스 멤버는 클래스에 정의된 일련의 데이터를 참조하며 직접적으로 종속됩니다. 반원의 첫 번째 수준에서. 클래스 멤버에는 멤버 특성, 멤버 메서드 및 클래스 상수가 포함됩니다.

  • Member 속성(클래스 속성): 클래스에 정의된 변수, 클래스에 데이터를 저장하는 데 사용됨

  • Member 메소드: 클래스에 정의된 함수, 이벤트 해결을 위해 객체에 제공됨.

  • 클래스 상수: 클래스에 정의된 상수는 const 키워드를 사용하여 정의됩니다.

액세스 시 액세스 자격 수정자를 사용하여 속성과 메서드를 수정해야 합니다.

구문: ​​

class 类名{
 
        public $成员属性名[=成员属性值]; //成员属性可以只定义而不赋值,放在之后赋值。 
        [public] function 成员方法名(){
                   ... 
                 } 
        const 常量名=值; 
 
}

클래스의 멤버 속성은 값을 할당하지 않고 정의할 수 있습니다. 후속 논리 연산의 상황에 따라 값을 할당할 수 있지만 액세스 자격 수정자를 사용하여 수정해야 합니다. 멤버 메소드는 생략할 수 있으며, 생략하면 기본값이 됩니다. 자격 수정자는 나중에 자세히 설명합니다.

2. 구현 단계

클래스 멤버를 구현하는 단계에도 비즈니스 논리 분석이 필요합니다.

  • 클래스 구조 선언

  • 클래스가 결정을 위해 데이터를 저장해야 하는지 분석합니다. 멤버 속성을 정의할지 여부 또는 정의된 멤버 속성의 수

  • 멤버 메서드를 정의할지 여부를 결정하기 위해 클래스가 특정 작업을 수행해야 하는지 분석합니다.

  • 상수를 정의해야 하는지 분석

  • 객체 인스턴스화

  • 객체를 통해 클래스 멤버 호출

예: 뉴스 제출 클래스를 분석하는 간단한 예

뉴스 제출을 구현하려면 다음을 수행합니다. 먼저 클래스 구조를 선언해야 합니다.

class devote{ }

그런 다음 데이터를 저장해야 하는지 분석합니다. 당연히 뉴스 제출 시 데이터를 저장해야 하며, 먼저 뉴스 제목과 뉴스 내용을 저장해야 하며 그 다음에는 닉네임을 포함한 기여자의 정보를 저장해야 합니다. 이메일, 휴대폰번호 등

저희는 회원 속성을 통해 이러한 데이터를 저장합니다:

class devote{
        public $nickname="投稿人";
        public $title="新闻标题";
        public $content="投稿内容";
        public $email="邮箱";
        public $phone="手机号"; 
}

그런 다음 작업을 수행해야 하는지 분석하여 뉴스를 제출할 때 먼저 뉴스 내용을 필터링하고 부적절한 단어를 차단한 다음 데이터베이스에 제출하여 초안을 저장해야 합니다. 검토를 기다리고 있습니다.

class devote{
        public $nickname="投稿人";
        public $content="投稿内容";
        public $email="邮箱";
        public $phone="手机号";
        function clear($content){
                 //过滤新闻内容 
        }
        function input(){
         //提交到数据库 
        } 
}

클래스 상수가 필요한가요? 당분간은 필요하지 않습니다. 다음 단계는 클래스를 인스턴스화한 다음 개체를 통해 멤버를 호출하여 함수를 구현하는 것입니다.

$devote=new devote();
//实例化对象 
$devote->nickname="小杜"; 
$devote->title="一件大事"; 
$devote->content="我手机没电了"; 
$devote->email="2811051813@qq.com"; 
$devote->phone="就不告诉你"; 
$devote->clear($devote->content); 
$devote->input(); 
//通过调用成员实现业务

클래스 멤버 호출과 관련하여 위의 예에 표시된 것처럼 클래스 속성 호출 구문은 다음과 같습니다.

$object->property name; 속성 이름을 호출할 때 $ 기호를 추가할 필요가 없습니다. 그러나 속성을 정의할 때는 변수 정의를 나타내는 $ 기호가 있어야 합니다.

속성을 호출하면 현재 속성의 값을 가져오고, 값을 할당하면 값이 변경됩니다. 위와 같이 title 속성을 직접 호출하면 얻은 값은 "뉴스 제목"입니다. 속성을 다시 할당하면 클래스 속성이 실제로 변수이기 때문에 다음 속성을 사용하여 얻은 값이 나중에 할당되는 값이 됩니다.

재할당은 다음과 같습니다.

$devote->title="一件大事"; 
//等同于: 
public $title="一件大事";

클래스 메서드 호출:

$Object->메서드 이름(매개변수)

클래스 상수 호출은 정적 호출이며 이에 대해서는 나중에 자세히 설명합니다.

객체를 인쇄하면 위의 내용을 시각적으로 표시할 수 있습니다.

class devote{
        public $nickname="投稿人"; 
        public $content="投稿内容"; 
        public $email="邮箱"; 
        public $phone="手机号"; 
        function clear($content){
         //过滤新闻内容 
        } 
        function input(){
         //提交到数据库 
        } 
} 
 
$devote=new devote(); 
var_dump($devote); 
//object(devote)#1 (4) { ["nickname"]=> string(9) "投稿人" ["content"]=> string(12) "投稿内容" ["email"]=> string(6) "邮箱" ["phone"]=> string(9) "手机号" }

직접 테스트해 보면 객체를 통해 구성원 속성을 다시 할당한 후 구성원 속성의 값이 기본값인 것을 확인할 수 있습니다. object:

$devote->nickname="小杜"; 
$devote->title="一件大事"; 
$devote->content="我手机没电了"; 
$devote->email="2811051813@qq.com"; 
$devote->phone="就不告诉你"; 
$devote->clear($devote->content); 
$devote->input(); 
var_dump($devote);

class 속성의 값이 변경된 것을 확인할 수 있습니다.

3. 멤버 작업

위의 예에는 이미 멤버 작업, 즉 멤버 속성에 액세스하고 멤버 속성을 수정하는 작업이 포함되어 있습니다. 요소 속성의 기본 작업은 확인 및 변경입니다. 위에서 설명한 속성 추가 작업을 참조하세요.

멤버 속성을 추가하려면 객체 바로 뒤에 존재하지 않는 멤버 속성을 호출하고 값을 할당하세요.

$devote->id=1; 
/*
 打印结果: object(devote)#1 (6) { ["nickname"]=> string(6) "小杜" ["content"]=> string(18) "我手机没电了" ["email"]=> string(17) "2811051813@qq.com" ["phone"]=> string(15) "就不告诉你" ["title"]=> string(12) "一件大事" ["id"]=> int(1) } 
*/

위 작업을 수행한 후 새 속성 ID가 생성됩니다. 클래스에 추가되고 값 1이 할당되었습니다. 이 값은 나중에 개체를 통해 직접 액세스할 수도 있습니다.

echo $devote->id; //输出1

존재하지 않는 속성을 직접 호출하면 오류가 보고되지 않지만 해당 값은 NULL입니다.

var_dump($devote->ids); //NULL
클래스 속성을 삭제하려면 unset 메소드를 사용하세요:

unset($devote->id); 
var_dump($devote->id); 
//NULL

객체를 통해 작동되는 클래스 속성은 현재 객체에서만 적용됩니다.

$devote->age=18; 
$dv=new devote(); 
var_dump($dv); 
//object(devote)#2 (4) { ["nickname"]=> string(9) "投稿人" ["content"]=> string(12) "投稿内容" ["email"]=> string(6) "邮箱" ["phone"]=> string(9) "手机号" }

메서드 연산은 하나의 연산, 즉 멤버 메소드만 호출합니다. 클래스는 객체를 통해서만 호출할 수 있습니다.

$devote->input();

참고: 클래스 멤버는 클래스에서 무제한으로 정의할 수 있지만 클래스에는 클래스 특성, 클래스 메서드 및 클래스 상수만 포함될 수 있습니다. 수업.

class Test{
        echo 1234; 
        var_dump("错误"); 
        if($a==1){ echo "True"; } 
} 
//syntax error, unexpected 'echo' (T_ECHO), expecting function (T_FUNCTION) or const (T_CONST)

추천 학습: "

PHP 비디오 튜토리얼

"

위 내용은 PHP 회원에는 여러 유형이 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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