PHP와 일반적으로 OOP로 시작합니다. 지금까지 내가 읽은 것에서 두 가지는 동의어 인 것처럼 보인다. 이 경우인가요? 그렇지 않다면 실질적으로 사람들이 사물과 수업을 언급 할 때 일반적으로 상호 교환 적으로 용어를 사용합니까?클래스와 객체는 PHP에서 동일한 것입니까?
답변
일반적으로 클래스의 인스턴스로 개체를 참조합니다.
일부 수업은 Employee
입니다.
class Employee {
var $name;
function get_name () { return $this->name; }
function set_name ($new_name) { $this->name = $new_name; }
}
는 그리고 당신은 그것의 인스턴스가 좋아 선언
$assistant = new Employee();
Employee
는 클래스입니다. $assistant
은 객체이므로 Employee 클래스의 인스턴스입니다.
질문에 대답하기 위해 클래스는 객체가 아닙니다. 클래스를 인스턴스화 할 때 객체를 만듭니다.
말하자면 클래스 이름 앞에 달러가 없습니다. 감사합니다. –
, 감사합니다. – Tom
클래스는 여전히 인스턴스 *를 만든 후에도 * 객체가 아닙니다. 여전히 수업입니다. –
개체와 클래스는 일반적으로 같은 의미로 사용합니까? 다른 OOP 언어에서와 마찬가지로
호는, 클래스가 무엇인가에 대한 청사진처럼, 집들은 말한다. 객체는 빌드 된 후 실제 집입니다. 정말로 다른 것들.
// blueprint
class House
{
public $color;
public function __construct($color = 'red')
{
$this->color = $color;
}
}
// make red house
$redHouse = new House();
// make blue house
$blueHouse = new House('blue');
// Now we have two different houses (objects) made from the same blueprint (class)
+1 은유를 나타냅니다. –
클래스는 개체의 정의입니다. 객체는 클래스의 인스턴스입니다. 예 :
class Parser {
public function parse() {}
}
...은 클래스입니다. "파서 클래스을 사용하여 텍스트를 구문 분석 할 수 있습니다."
$p = new Parser;
이제는 $p
이 대상입니다. 이것은 Parser
클래스의 인스턴스입니다.
이것은 특히 static
키워드에서 중요합니다. 정적 메서드 및 멤버는 객체가 아닌 클래스에 속합니다.
class Parser {
public static $type;
public $text;
}
$p1 = new Parser;
$p2 = new Parser;
$p1::$type = 'php';
$p1->text = 'sometext';
$p2->text = 'someothertext';
echo $p2::$type; //echos "php"
echo $p1->text; //echos "sometext"
분명히 동의어가 아니며, 책을 읽은 적이 있다면 책을 바꿔야 할 때입니다. 객체가 인스턴스 동안 :-)
클래스 유형는이다.
간단한 예제는 정수입니다. "정수"는 유형을 나타내지 만 정수는 $x
입니다. PHP에서는 강력한 유형의 시스템이 없으므로 완전히 명확하지는 않지만 아이디어를 얻길 바랍니다. 마찬가지로 array
이 유형이지만 $v = array();
은 배열 유형의 인스턴스 ($v
)를 만듭니다. $y = new MyClass();
: 당신이 배열처럼 클래스와
, 당신은 대신에, 당신은 new
사용해야합니다, 을 말할 수 없습니다.$y = MyClass();
질문에서의 을 삭제할 수 있으며 여전히 동일합니다.
클래스는 예를
class Person {
}
에 대한 객체를 정의하는 것은 사람 객체를 정의하는 클래스입니다. 당신이
austin = new Person()
austin -> hair_color("brown")
처럼 뭔가를 할 수 PHP에서 객체 메소드는 현재 당신이 뭔가를 할 수 있습니다 클래스 메소드와 객체 메소드를
class Person {
function hair_color(color) {
hair_color = color;
}
}
입니다 만들기 시작할 때
구분은 더 중요 얻을
class Person {
total = 0;
static function total_in_class() {
total++;
}
}
이제는 클래스 메서드이므로 모든 개체에 영향을줍니다. 같은 클래스의
그런 식으로 지금 내 PHP는 다음 클래스의 모든 객체는 것 루비에서
영향 때문에 즉 1. 에코해야하는 녹슨없는 경우austin = new Person();
austin -> total_in_class
tom = new Person();
echo tom->total
확실히 우리는 모두 ;-)을 난 :
class Person
def hair_color(color)
hair_color = color;
end
def self.total_in_class()
total+=1
end
end
유사과 같은 개념
- 1. SOAPpy는 SOAPy와 동일한 것입니까?
- 2. AudioSession은 실제로 OpenAL과 동일한 것입니까?
- 3. DataContext 클래스와 동일한 LINQPad가 있습니까?
- 4. 객체는
- 5. OS X에서 심볼릭 링크와 별칭이 동일한 것입니까?
- 6. 술어 템플리트는 준비된 명령문과 동일한 것입니까?
- 7. 오디오 프로그래밍 컨텍스트에서 피치와 속도가 동일한 것입니까?
- 8. PHP 클래스와
- 9. __construct() 클래스와 동일한 이름을 가진 메소드
- 10. module2의 클래스와 동일한 이름의 module1에 클래스로드
- 11. Java의 AWT Robot 클래스와 동일한 Python이 있습니까?
- 12. 이 C# linq 클래스와 동일한 VB.NET
- 13. Java Selector 클래스와 동일한 C#이 있습니까?
- 14. classmethod 객체는 어떻게 작동합니까?
- 15. PHP 클래스/객체는 어떻게 테스트합니까?
- 16. 알림 객체는
- 17. 전달 객체는
- 18. 사용 객체는
- 19. 보내기 객체는
- 20. 불투명 객체는
- 21. 추출 객체는
- 22. 불변의 객체는
- 23. int 객체는
- 24. ActiveX 객체는
- 25. 쓰기 객체는
- 26. 어떤 클래스가 인스턴스화 될 것입니까
- 27. PHP에서 부모 클래스와 객체를 어떻게 비교할 수 있습니까?
- 28. ==를 재정의하고 null과 동일한 인스턴스 비교를 갖는 것이 나쁜 것입니까?
- 29. vps에서 netbeans을 실행하는 것과 동일한 것입니까? 아니면 glassfish 만 실행해야합니까?
- 30. 동일한 데이터가있을 때 가장 작은 파일 크기는 어느 것입니까?
@Jared Farrish을 적용 다음과 같이보고 당신을 탓하지 않고, 나는 모든 것을 깨끗하게하려고했습니다. 이것은 종종 개념 오해이기 때문입니다. – zerkms
@zerkms - 그런 일이 발생합니다. 표시된 대답조차도 명백한 결함이있었습니다. C'est la vie. –