문제

PHP에서 OOP에 대해 더 많이 배우려고 노력하는 내 퀘스트에서. 나는 생성자 기능을 몇 번 잘 발견했으며 더 이상 무시할 수 없습니다. 내 이해에 따르면, 생성자는 내가 객체를 만드는 순간에 호출됩니다. 이것이 맞습니까?

그러나 "정상"함수 또는 메소드를 호출 할 수 있다면 왜이 생성자를 만들어야합니까?

건배, 키이스

도움이 되었습니까?

해결책

예 객체가 생성 될 때 생성자가 호출됩니다.

생성자의 유용성의 작은 예는 이것입니다.

class Bar
{
    // The variable we will be using within our class
    var $val;

    // This function is called when someone does $foo = new Bar();
    // But this constructor has also an $var within its definition,
    // So you have to do $foo = new Bar("some data")
    function __construct($var)
    {
        // Assign's the $var from the constructor to the $val variable 
        // we defined above
        $this->val = $var
    }
}

$foo = new Bar("baz");

echo $foo->val // baz

// You can also do this to see everything defined within the class
print_r($foo);

업데이트 : 질문은 이것이 왜 사용되어야하는지 묻습니다. 실제 예제는 데이터베이스 클래스입니다. 데이터베이스 클래스는 사용자 이름과 비밀번호와 테이블을 연결하여 객체를 호출하여 생성자가 연결합니다. 그런 다음 해당 데이터베이스 내에서 모든 작업을 수행 할 수있는 기능이 있습니다.

다른 팁

생성자를 사용하면 객체를 사용하기 전에 객체를 특정 상태에 넣을 수 있습니다. 예를 들어, 객체에 사용하기 위해 필요한 특정 속성이있는 경우 생성자에서 초기화 할 수 있습니다. 또한 생성자는 객체를 초기화하는 효율적인 방법을 허용합니다.

생성자의 아이디어는 객체에 대한 초기 데이터를 준비하는 것이므로 예상대로 작동 할 수 있습니다.

Just call a method 당신이 그렇게하는 것을 잊을 수 있기 때문에 거래가 아니며, 이는 구문에서 "작업 전"로 지정할 수 없으므로 "깨진"객체를 얻을 수 있습니다.

생성자는 다양한 것들에 좋습니다. 그들은 당신의 수업에서 변수를 초기화합니다. BankAccount 클래스를 만들고 있다고 가정 해 봅시다. $ B = 새로운 BankAccount (60); 은행 계좌에 초기 값을 제공하는 생성자가 있습니다. 클래스 내에서 기본적으로 변수를 설정하거나 다른 클래스 (상속)를 초기화 할 수도 있습니다.

생성자는 객체가 생성 될 때 완료된 초기화를위한 것입니다.

새로 생성 된 객체에서 임의의 메소드를 호출하고 싶지 않을 것입니다. 이는 캡슐화 아이디어에 위배되므로 내부 작업에 대한 내재 된 지식을 갖기 위해이 개체를 사용하는 코드가 필요하기 때문입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top