>백엔드 개발 >PHP 튜토리얼 >PHP 초보자는 언제 클래스를 사용해야 하고 언제 함수를 사용해야 합니까?라고 묻고 싶습니다.

PHP 초보자는 언제 클래스를 사용해야 하고 언제 함수를 사용해야 합니까?라고 묻고 싶습니다.

WBOY
WBOY원래의
2016-09-19 09:16:331793검색

일부 문제는 클래스나 함수를 직접 사용하여 해결할 수 있습니다. 그리고 일부 PHP 프레임워크에서는 많은 클래스의 메서드가 이 클래스의 인스턴스에 의존할 필요가 없다는 것을 알았습니다. 이러한 메서드는 도구적 메서드이며 이 클래스에는 여전히 속성(변수)이 없습니다. 수업을 사용하는 것이 더 좋습니다. 요점은 무엇입니까? static을 선언하지 않으면 호출하기 전에 인스턴스화해야 하는데, 이는 함수보다 훨씬 더 번거롭습니다. 그렇다면 많은 PHP 클래스 라이브러리가 단지 몇 가지 함수만으로 달성할 수 있는 기능을 구현하기 위해 여러 클래스를 사용하는 이유는 무엇일까요?

그렇다면 어떤 상황에서 함수를 사용해야 하고, 클래스는 어떤 상황에서 사용해야 할까요?

답글 내용:

일부 문제는 클래스나 함수를 직접 사용하여 해결할 수 있습니다. 그리고 일부 PHP 프레임워크에서는 많은 클래스의 메서드가 이 클래스의 인스턴스에 의존할 필요가 없다는 것을 알았습니다. 이러한 메서드는 도구적 메서드이며 이 클래스에는 여전히 속성(변수)이 없습니다. 수업을 사용하는 것이 더 좋습니다. 요점은 무엇입니까? static을 선언하지 않으면 호출하기 전에 인스턴스화해야 하는데, 이는 함수보다 훨씬 더 번거롭습니다. 그렇다면 많은 PHP 클래스 라이브러리가 단지 몇 가지 함수만으로 달성할 수 있는 기능을 구현하기 위해 여러 클래스를 사용하는 이유는 무엇일까요?

그렇다면 어떤 상황에서 함수를 사용해야 하고, 클래스는 어떤 상황에서 사용해야 할까요?

클래스의 기능은 함수를 패키징하는 것입니다. 여러 함수를 하나의 모듈(클래스)로 패키징해야 하는 경우 네이키드 함수 대신 클래스를 사용하세요.

사용 시기는 의견과 현지 상황에 따라 다르며 완벽한 답변을 추구할 필요는 없습니다

질문하시는 분이 객체지향 철학을 제대로 이해하지 못하신 것 같습니다.
객체 지향 클래스는 여러 함수를 모듈로 캡슐화하는 것만큼 간단하지 않습니다. 코드 세계의 다양한 것들을 하나의 사물(즉, 객체)로 추상화한 다음 여기에 액션과 라벨을 부여할 수 있습니다. , 즉 메서드와 속성입니다.
예를 들어, 사용자 회원이 로그인 및 게시가 가능하고 이름이 Chang Wei인 경우 해당 사용자에게 로그인 및 게시 방법과 이름 속성을 제공할 수 있습니다.
그래서 귀하의 질문에 대한 제 대답은, 그것이 아주 작은 함수이거나 어떤 객체와도 결합되지 않는 매우 일반적인 함수라면 함수를 사용하고, 그렇지 않으면 클래스를 사용한다는 것입니다.

"function은 어떤 상황에서 사용해야 하고, class는 어떤 상황에서 사용해야 하나요?"라고 말씀하셨듯이 매우 흥미로운 질문입니다.

무슨 일이에요? 3가지 예를 들어보세요.

  1. 일회성 미션?

  2. 장기적인 유지 관리, 복잡한 비즈니스 로직, 잦은 변경?

  3. 장기 유지보수, 개발 프레임워크 등 기본 지원?

일반적으로 일회성 작업이므로 무엇을 사용하든 관계없이 작업을 완료하세요. 장기적인 유지 관리가 필요한 작업은 단순한 함수나 클래스가 아닙니다. 이것은 공학, 소프트웨어 공학입니다.

과거에 비해 엔터프라이즈급 소프트웨어 시스템은 더 크고 복잡하며 더 자주 변경됩니다. 복잡성을 줄이고 변화에 대처하는 방법은 소프트웨어 엔지니어링 연구를 촉진하고 고급 언어의 진화도 가져왔습니다. ​​더 강력한 표현력을 가지고 있습니다. 디자인 측면에서는 분해, 추상화, 계층 구조 및 기타 수단을 사용하여 복잡성을 줄이고 변화에 대처합니다.

객체 지향 기술이 제시하는 맹목적인 처방에는 추상화, 캡슐화, 모듈화, 계층 구조, 유형, 동시성, 지속성 등의 원칙이 포함됩니다. 예로부터 전해오는 전통약재가 많이 있다. 또한 "프로그래밍 스타일", "코드 백과사전", "애자일 소프트웨어 개발 - 원리, 패턴 및 실습", "읽기 쉬운 코드 작성 기술", "소프트웨어 디자인 리팩토링", "엔터프라이즈 애플리케이션 아키텍처 패턴" 등 많은 고전을 남겼습니다. " 》......

그래서 답은 무엇입니까? 어쩌면 복잡한 시스템으로 자신을 고문하고, 실천을 안내하는 몇 가지 원칙을 이해하고, 지식을 행동과 통합해야 할 수도 있습니다.

도구 기능이 많으면 도구 클래스에서 정적 함수로 부르는 것이 더 명확할 것이고, 도구 기능을 목적에 따라 분류하는 것도 편리할 것입니다.

카테고리.

<code>class User

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