방금 홈페이지에 업데이트된 Class 관련 글을 잠깐 봤습니다.(PHPE 글 http://www.phpe.net/articles/389.shtml 참고) 정말 읽어보시길 추천드립니다.
클래스 탐구~~ 클래스의 기능과 구현을 대략적으로 이해하는데 반년이 걸렸습니다. 가장 큰 이유는 제가 이해할 수 있는 글이 없기 때문입니다(저는 OO 관련 내용을 접해본 적이 없습니다).
제 관점에서는 PHP에서 Class를 표현하는 데 사용되는 언어가 비공식적이며 올바른지 잘 모르겠습니다.
클래스를 만드는 것은 쉽습니다.
class my_class {}
클래스의 역할은 정확히 무엇인가요? 많은 사람들이 블랙박스라는 것을 여기서는 독립된 전체라고 부릅니다. 우리는 클래스 이름만 알고 그 안에 무엇이 있는지는 모릅니다. 그렇다면 이 클래스를 어떻게 활용할까요?
우선, 여기에 정의된 공용 변수(전문 용어로 "속성"이라고 함)가 있는지 알아야 합니다.
둘째: 어떤 기능이 정의되어 있는지 알아야 합니다. 전문 용어로 "메서드"라고 합니다.
모든 전문용어가 헷갈려서 그냥 무시했어요.
클래스에서 공용 변수를 정의하는 방법과 그 역할은 무엇인가요?
아주 간단합니다. my_class 클래스를 확장해 보겠습니다.
class my_class
{
var $username;
}
위를 보면 매우 간단합니다. 그냥 var를 사용하세요. 일반적인 변수 이름은 공백으로 구성됩니다. 그것은 무엇을 위해 사용됩니까? 함수를 고려해보세요. 함수 외부의 변수에 액세스하려면 먼저 전역 변수를 사용해야 합니까? 이 효과도 마찬가지입니다. 이 클래스의 모든 함수가 이에 액세스할 수 있기를 원하며, 함수와 구별되는 한 가지는 이 변수에 액세스하는 방법에 대해 설명하겠습니다. 나중에 외부에서. 또 다른 차이점은 복잡한 명령문을 사용하여 이 변수에 값을 할당할 수 없다는 것입니다(클래스를 이해한 후 직접 규칙을 참조하세요). 기본값을 지정하세요.
class my_class
{
var $username = "deep space"
}
좋아, 공용 변수가 정의되고 함수가 정의됩니다. -"방법"이라고 함).
class my_class
{
var $username = "deep space";
function show_username()
{
}
}
이 정의 함수는 다음과 같습니다. 일반적인 정의 기능적 형태에는 차이가 없습니다. 간단하게 $username을 인쇄하는 함수를 정의하세요.
class my_class
{
var $username = "deep space"
function show_username($username)
{
echo $username
}
}
이 시점에서 혼란스러워하시는 분들도 계시겠지만, 하하, 가장 중요한 것은 바로 여기입니다. 이제 세 개의 $username 이 있습니다. 어느 것이 어느 것~~
함수의 행 매개변수는 굳이 설명할 필요 없겠죠? 이 함수의 기능은 line 매개변수로 받은 값을 인쇄하는 것입니다. 즉,
show_username("Pig's Head Deep Space")
그러면 "Pig's Head Deep Space"가 인쇄됩니다. 단순한.
이 기능에 어떻게 접근하나요? 위에서 말했듯이 그것은 확실히 직접적인 show_username("Pig Head Deep Space");가 아닙니다. 카테고리는 다양합니다.
$Name = new my_class();
이렇게 하면 위의 my_class 클래스가 초기화되고 이 개체가 $Name 변수에 할당됩니다. 수업 전체, 헤헤.
수업에 있는 함수를 사용하세요:
$Name->show_username("Pig Head Deep Space")
혼란스럽네요. 왜 이렇게 복잡할까요? 화살을 원하시나요? 실제로는 매우 생생합니다. 클래스는 이미 $Name 변수에 지정되어 있습니다. 그렇죠? 즉, $Name은 이 클래스를 나타내고 화살표를 사용하여 클래스의 show_username 함수를 가리킵니다. 이렇게 간단합니다. 즉, 이 함수는 다른 함수가 아닌 이 클래스에 속한다는 것입니다. 차이를 나타내는 것으로 이해할 수 있습니다. 하하.
사용해보고 "Pig Head Deep Sky"라는 네 단어를 인쇄해 보세요. 왜 그렇게 복잡하다고 생각하시나요? 기능을 사용하는 것도 가능한가요? 물론 이렇게 간단한 것의 이점을 볼 수는 없지만 계속 확장하자고 말했습니다.
또 다른 질문이 있습니다. 방금 언급한 "공용 변수"가 왜 쓸모가 없는 걸까요? 이 함수가 이 공개 변수 var $username의 기본값을 자동으로 받지 못하는 이유는 무엇입니까? 즉,
$Name->show_username($username);
결과는 어떻게 될까요? 대답은 출력이 없다는 것입니다. 공식 매개변수 $username에 값을 제공하지 않았기 때문입니다.
그렇다면 이 공개 변수를 어떻게 사용할까요? 이 클래스를 수정해 보겠습니다.
class my_class
{
var $username = "Deep Space"
function show_username()
{
echo $this->username; >}
}
와, 이번에는 얼굴 매개변수가 없나요? $this->도 하나 더 있어서 현기증이 나네요, 하하. 사실 이것도 수업의 가장 큰 편리함 중 하나죠.
$this의 역할: 공용 변수 또는 클래스의 함수에 액세스합니다.
방문? 너무 전문적인가요? 실제로 $this->username은 var $username 대신 사용됩니다. $this는 공개임을 나타내는 데 사용됩니다. 접근 가능, 함수 외부의 것들.
해 보세요:
$Name->show_username()
드디어 "deep space"라는 단어가 인쇄되었습니다. 와하하.
'Deep Space'라는 단어를 인쇄하고 싶지 않습니다. 'Pig Head Deep Space'를 인쇄하고 싶습니다. 어떻게 해야 하나요? 매우 간단합니다. 이 공용 변수를 다시 할당합니다. 나는 당신에게 깊은 인상을 받았습니다.
$Name->username = "Pig Head Deep Sky"
이 말의 의미를 이해하셨나요? $Name->username은 클래스의 이 공용 변수를 나타냅니다. 등호 할당에 대해서는 설명할 필요가 없습니다.
다시 인쇄해 보겠습니다
$Name->show_username()
ㅋㅋㅋ 드디어 "Pig Head Deep Space"가 인쇄되었습니다. 나쁘지 않네요. 형식적인 매개변수 없이 인쇄된 값을 임의로 수정할 수 있어 매우 편리합니다~~.
하지만 이름만 인쇄하는 것은 너무 지루합니다. 이 클래스를 확장하고 Welcome이라는 함수를 만들어 보겠습니다.
class my_class
{
var $username = "Deep Space"; 🎜>function show_username()
{
echo $this->username
}
function Welcome()
{
}
}
뭐, 뭐야? 기능을 구현할 수 있나요? 간단하게 하려면
class my_class
{
var $username = "deep space"
function show_username()
{
echo $this->username;
}
function Welcome()
{
echo "Welcome";
$this->show_username(); 🎜>}
$이것을 두 번째로 보셨나요? $this->show_username(); 용도는 무엇인가요? 실제로 $this를 사용하여 이 함수가 다른 곳(예: Welcome 함수)이 아닌 클래스에 있고 Welcome 함수와 병렬임을 나타내기 위해 show_username 함수를 호출합니다.
Welcome 함수로 구현된 함수는 매우 간단합니다. 먼저 "Welcome"이라는 두 단어를 인쇄한 다음 show_username 함수를 실행하여 이름을 인쇄합니다.
이 함수를 사용해 보겠습니다.
$Name->Welcome()
"Welcome to Deep Space"라는 네 단어가 출력됩니다.
그런데 "Welcome to Pig Head Deep Space"를 인쇄하고 싶은데 어떻게 해야 하나요? 확신합니다. 공개 변수 var $username에 값을 지정해 보겠습니다.
$Name->username = "Pig Head Deep Space"
다음으로 환영 메시지를 인쇄합니다.
$Name-> ; Welcome();
안녕하세요, "Welcome to Pig Head Deep Space"가 드디어 인쇄되었습니다.
어때요? 수업의 사용법을 이해하고 있나요? 장점은 $this를 사용하여 클래스의 모든 함수를 호출할 수 있다는 것입니다. 이 공용 변수는 클래스의 함수에서 사용할 수 있습니다. .........너무나 많은 앱이 여러분의 발견을 기다리고 있습니다.
위 내용은 말보로클래식에 대한 소개입니다. 말보로클래식의 내용을 포함한 입문용 클래스 글이 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.