> 백엔드 개발 > PHP 튜토리얼 > PHP 클래스와 객체의 관계

PHP 클래스와 객체의 관계

angryTom
풀어 주다: 2023-04-07 09:00:01
원래의
3768명이 탐색했습니다.

PHP 클래스와 객체의 관계

객체 지향(OO)은 소프트웨어 개발 방법입니다. 객체 지향 개념과 응용 프로그램은 프로그래밍과 소프트웨어 개발을 넘어 데이터베이스 시스템, 대화형 인터페이스, 응용 프로그램 구조, 응용 프로그램 플랫폼, 분산 시스템, 네트워크 관리 구조, CAD 기술, 인공 지능 및 기타 분야와 같은 분야로 확장되었습니다. 아래에서는 PHP의 클래스와 객체 간의 관계를 소개합니다.

추천 튜토리얼: PHP 비디오 튜토리얼

1. 클래스와 객체의 관계

클래스의 구체화 결과가 객체이고 객체의 추상화가 클래스입니다. 개발 과정에서 우리는 일반적으로 먼저 클래스를 추상화(상상)한 다음 클래스를 사용하여 객체를 생성합니다(판타지 콘텐츠 실현). 프로그램에서 우리는 추상(판타지) 클래스 대신 (판타지) 객체를 직접 사용합니다.

2. 객체 지향과 프로세스 지향

1. -지향# 🎜🎜# 프로세스 지향은 빨래, 요리, 모든 것을 스스로 해결하는 것과 같습니다

2. #🎜 🎜#

객체지향이란 사람이 물건을 가지고 그 물건에게 빨래도 하고 요리도 하라고 하는 것을 말합니다.

3. 클래스를 추상화하는 방법

class 类名{
     成员属性:
        姓名、性别、年龄、身高、体重
     成员方法:
        说话、走路、学习、吃饭、开车
   }
로그인 후 복사
모든 ​​클래스는 멤버 속성과 멤버 메서드에서 파생됩니다. 이 두 가지 측면에서 속성과 메서드는 클래스의 멤버라고 선언되므로 속성은 멤버 속성이라고도 하며, 메서드는 멤버 메서드라고도 합니다. 🎜#1. 특징 #🎜 🎜#

객체에서 직접 변수를 선언하는 것을 멤버 속성이라고 합니다. 클래스에서 여러 멤버 변수를 선언할 수 있습니다. 즉, 여러 멤버 속성이 있을 수 있습니다

class Person{
    var $name;    //声明第一个成员属性,用于储存人的名字
    var age;      //声明第一个成员属性,用于储存人的年龄
    var $sex;     //声明第一个成员属性,用于储存人的性别
  }
로그인 후 복사
2. 멤버 메소드 -->Function

class Person{
    var $name;    //声明第一个成员属性,用于储存人的名字
    var $age;      //声明第一个成员属性,用于储存人的年龄
    var $sex;     //声明第一个成员属性,用于储存人的性别
    function say(){   //声明第一个方法
        echo '人在说话';   //定义人说话的功能
    }
    function run(){   //声明第二个方法
        echo '人在跑步';   //定义人跑步的功能
    }
    function eat(){   //声明第三个方法
        echo '人在吃饭';   //定义人吃饭的功能
    }
}
로그인 후 복사

객체는 관련된 속성과 메소드를 함께 구성합니다. 멤버 특성과 멤버 메서드는 모두 선택 사항입니다. 멤버 특성만 가질 수도 있고, 멤버 메서드만 가질 수도 있고, 멤버가 없을 수도 있습니다.

4. 객체 인스턴스화

A 클래스는 여러 객체를 선언할 수 있습니다. 멤버 속성 및 멤버 메서드에 액세스

class Person{
    var $name;    //声明第一个成员属性,用于储存人的名字
    var $age;      //声明第一个成员属性,用于储存人的年龄
    var $sex;     //声明第一个成员属性,用于储存人的性别
    function say(){   //声明第一个方法
        echo '人在说话';   //定义人说话的功能
    }
    function run(){   //声明第二个方法
        echo '人在跑步';   //定义人跑步的功能
    }
    function eat(){   //声明第三个方法
        echo '人在吃饭';   //定义人吃饭的功能
    }
}
// 实例化对象
$sqyy = new Person();
//成员属性赋值
$sqyy -> name = "伊川";
$sqyy -> sex = "男";
$sqyy -> age = 26;
//访问对象中的成员方法
$sqyy->eat();
로그인 후 복사

5 특수 개체 참조 "$this"#🎜🎜 ##🎜 🎜# 위의 예에서는 객체를 인스턴스화한 다음 멤버 속성에 값을 할당하고 멤버 메서드에 액세스합니다. 그런 다음 $this는 현재 개체를 나타내는 멤버 메서드에도 사용할 수 있습니다.

멤버 메서드가 호출되기 전의 개체는 누구이며 $this는 누구를 나타냅니다.

class Person{
    var $name;   
     function info(){     
        $this ->name = "SQYY";
    }
  }
로그인 후 복사
# 🎜 🎜#

6. 공법 및 파기방법

1. 공법

#🎜🎜 # 생성 메서드는 개체가 생성된 후 개체에 의해 자동으로 호출되는 첫 번째 메서드입니다. 개체를 초기화하고 개체를 인스턴스화하는 데 new 키워드가 사용될 때 자동으로 트리거됩니다.

<?php
    class Person{
        //下面是声明人的成员属性,都是没有初始值的,在创建对象时,使用构造方法赋给初始值
        var $name;   //定义人的名字
        var $sex;    //定义人的性别
        var $age;    //定义人的年龄
        
        function __construct($name="SQYY",$sex="男",$age=1){
            $this -> name = $name;  //在创建对象时,使用传入的参数$name为成员属性 $this->name赋初值
            $this -> sex = $sex;    //在创建对象时,使用传入的参数$sex为成员属性 $this->sex赋初值
            $this -> age = $age;    //在创建对象时,使用传入的参数$sex为成员属性 $this->age赋初值
        }
    
        //下面声明人的成员方法
        function say(){
            echo "我的名字:" .$this ->name. " ,性别:" .$this -> sex ."  年龄" .$this ->age. "。<br>";
        }
    }
    
    $person1 = new Person();                   //创建对象$person1时会自动执行构造方法,默认传参
    $person2 = new Person(&#39;张三&#39;);             //创建对象$person2时会自动执行构造方法,传入第一个参数,其他默认传参
    $person3 = new Person(&#39;李四&#39;,&#39;男&#39;);        //创建对象$person3时会自动执行构造方法,传入前两个参数,其他默认传参
    $person4 = new Person(&#39;王五&#39;,&#39;女&#39;,&#39;20&#39;);   //创建对象$person4时会自动执行构造方法,传入所有参数
    
    $person1 ->say();
    $person2 ->say();
    $person3 ->say();
    $person4 ->say();
?>
로그인 후 복사

실행결과

2. 파기방법

#🎜 🎜 # 객체가 소멸되기 전에 자동으로 호출되는 마지막 메서드, 먼저 들어오는 변수를 생성한 다음 소멸

<?php 
    header(&#39;Content-type:text/html;charset=utf-8&#39;);
    // 定义一个汽车的类
    class car{
        // 成员属性
        public $name;
        public $color;

        //构造方法
        public function __construct($name,$color){
            $this->name = $name;
            $this->color = $color;
            echo "你创建了".$this->name.&#39;<br>&#39;;
        }

        // 析构方法
        public function __destruct(){
            echo "你销毁了".$this->name.&#39;<br>&#39;;
        }
    }

    // 实例化对象
    $hanma = new car(&#39;悍马&#39;,&#39;粉色&#39;,&#39;H2&#39;);
    $bmw = new car(&#39;宝马&#39;,&#39;红色&#39;,&#39;X7&#39;);
    $benchi = new car(&#39;奔驰&#39;,&#39;黑色&#39;,&#39;s600&#39;);

    // unset($bmw);
    $bmw = &#39;1111&#39;;
 ?>
로그인 후 복사
실행 결과

# 🎜🎜#

변수를 참조하지 않으면 개체가 생성된 후 삭제됩니다.

<?php 

    header(&#39;Content-type:text/html;charset=utf-8&#39;);

    // 定义一个汽车的类
    class car{
        // 成员属性
        public $name;
        public $color;

        //构造方法
        public function __construct($name,$color){
            $this->name = $name;
            $this->color = $color;
            echo "你创建了".$this->name.&#39;<br>&#39;;
        }

        // 析构方法
        public function __destruct(){
            echo "你销毁了".$this->name.&#39;<br>&#39;;
        }
    }

    // 实例化对象
    new car(&#39;悍马&#39;,&#39;粉色&#39;,&#39;H2&#39;);
    new car(&#39;宝马&#39;,&#39;红色&#39;,&#39;X7&#39;);
    new car(&#39;奔驰&#39;,&#39;黑色&#39;,&#39;s600&#39;);

 ?>
로그인 후 복사
PHP 클래스와 객체의 관계실행 결과

위 내용은 PHP 클래스와 객체의 관계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿