찾다
백엔드 개발PHP7php7 확장 클래스 작성 방법

php7에는 많은 확장 클래스가 있습니다. 오늘은 수행 방법과 말하기 방법을 구현하는 사람 클래스를 예로 들어 보겠습니다.

php7 확장 클래스 작성 방법

1. 구현해야 할 세부 사항

사람 클래스 구현

행동 방법 및 말하기 방법 구현

2. 첫 번째 확장

2.1 클래스 확장 만들기:

[root@bogon ext]# cd /usr/local/src/php-7.0.3/ext
[root@bogon ext]# ./ext_skel --extname=person

2.2 구성 수정

[root@bogon ext]# vim person/config.m4
dnl PHPARGWITH(person, for person support,
dnl Make sure that the comment is aligned:
dnl [ --with-person Include person support])

다음으로 변경:

PHPARGWITH(person, for person support,
dnl Make sure that the comment is aligned:
[ --with-person Include person support])

2.3 구현 코드

php_person.h 헤더에

extern zend_class_entry *person_ce;
PHP_METHOD(person_ce,__construct);
PHP_METHOD(person_ce,saying);
PHP_METHOD(person_ce,doing);
추가

person.c 헤더에

/** * 声明构造函数 * 
@param * @return */
ZEND_METHOD(person,__construct){        
zval *pThis;        
pThis = getThis();    
zend_printf("construct\n");
}
/** * 声明析造函数 *
 @param * @return */
ZEND_METHOD(person,__destruct){    
zend_printf("destruct\n");
}
ZEND_METHOD(person,doing){    
zend_printf("doing\n");
}
ZEND_METHOD(person,saying){    
zend_printf("saying\n");
}
//这个函数需要加上声明,去掉了没用的test函数const zend_function_entry person_functions[] = {    
ZEND_ME(person, __construct, global_config_arg, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)    
ZEND_ME(person,doing,NULL,ZEND_ACC_PUBLIC) ZEND_ME(person,saying,NULL,ZEND_ACC_PUBLIC)    
ZEND_ME(person,__destruct,NULL,ZEND_ACC_PUBLIC|ZEND_ACC_DTOR)    
PHP_FE_END  
/* Must be the last line in person_functions[] */
};
//将类和方法注册到zendPHP_MINIT_FUNCTION(person){       
zend_class_entry ce;       
INIT_CLASS_ENTRY(ce, "person", person_functions);       
person_ce = zend_register_internal_class(&ce TSRMLS_CC);       
zend_declare_property_null(person_ce,"saying",strlen("saying"),ZEND_ACC_PUBLIC);       
zend_declare_property_null(person_ce,"doing",strlen("doing"),ZEND_ACC_PUBLIC);    
return SUCCESS;
}
추가

2.4 컴파일

* [root@bogon hello]# [root@localhost person]# ./configure && make && make install

2.5 확장 설치

php.ini 변경 추가

[person] extenstion=person.so

2.6의 확장된 사용

[root@bogon tests]# cat test.php
<?php
$n = new person();
echo $n->saying();
echo $n->doing();
[root@localhost tests]# php test.phpconstructsayingdoingdestruct

권장 학습: php 비디오 튜토리얼

위 내용은 php7 확장 클래스 작성 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 慕课网에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
PHP 5.6에서 PHP 7으로 업그레이드하는 방법은 무엇입니까?PHP 5.6에서 PHP 7으로 업그레이드하는 방법은 무엇입니까?Mar 10, 2025 pm 06:29 PM

이 기사에서는 PHP 5.6을 PHP 7으로 업그레이드하고 백업, 서버 호환성 확인 및 업그레이드 방법 (패키지 관리자, 컴파일, 제어판 또는 웹 서버 구성)과 같은 중요한 단계를 강조합니다. 그것은 Potentia를 다룹니다

New Relic과 같은 도구로 PHP 7 성능을 모니터링하는 방법은 무엇입니까?New Relic과 같은 도구로 PHP 7 성능을 모니터링하는 방법은 무엇입니까?Mar 10, 2025 pm 06:28 PM

이 기사에서는 New Relic을 사용하여 PHP 7 응용 프로그램 성능을 모니터링하는 방법을 설명합니다. APDEX 점수 및 응답 시간과 같은 KPIS (Kep Relic의 설정, KPI), 트랜잭션 트레이스 및 오류 트랙을 통한 병목 현상 식별에 대해 자세히 설명합니다.

PHP 7 응용 프로그램을 웹 서버에 배포하는 방법은 무엇입니까?PHP 7 응용 프로그램을 웹 서버에 배포하는 방법은 무엇입니까?Mar 10, 2025 pm 06:28 PM

이 기사는 PHP 7 응용 프로그램, Covering Methods (FTP, SSH, 배포 도구), 서버 구성 (APACHE/NGINX, PHP-FPM), 데이터베이스 설정 및 중요한 보안 고려 사항 배포에 대해 자세히 설명합니다. 서버 compatib와 같은 일반적인 과제를 강조합니다

PHP 7 프로젝트에서 버전 제어에 GIT를 사용하는 방법은 무엇입니까?PHP 7 프로젝트에서 버전 제어에 GIT를 사용하는 방법은 무엇입니까?Mar 10, 2025 pm 06:27 PM

이 기사는 PHP 7 개발자가 버전 제어를 위해 GIT 사용을 안내합니다. 초기화, 준비, 커밋, 파일 무시, 원격 리포지토리, 분기, 병합, 충돌 해결 및 필수 GIT 명령을 다룹니다. Effic의 모범 사례

PHP 7과 함께 Docker를 사용하는 방법?PHP 7과 함께 Docker를 사용하는 방법?Mar 10, 2025 pm 06:26 PM

이 기사는 Dockerfile 생성, 이미지 빌딩 및 컨테이너 런타임을 다루는 PHP 7과 함께 Docker를 사용하여 설명합니다. 보안 모범 사례 (뿌리가 아닌 사용자, 종속성 업데이트, 입력 유효성 검증), Docker Comp와의 멀티 서비스 관리에 대해 자세히 설명합니다.

PHP 7 코드를 디버깅하는 데 Xdebug를 사용하는 방법은 무엇입니까?PHP 7 코드를 디버깅하는 데 Xdebug를 사용하는 방법은 무엇입니까?Mar 10, 2025 pm 06:26 PM

이 기사에서는 PHP 7 코드를 디버깅하기 위해 XDEBUG를 사용하는 방법에 대해 설명합니다. XDEBUG 구성 (설치, php.ini 설정, IDE 설정), 중단 점 사용 (조건부, 기능, 원격) 및 문제 해결 연결 문제를 다룹니다. 효과적인 디버지

PHP 7 코드를 테스트하기 위해 PHPUNIT를 사용하는 방법은 무엇입니까?PHP 7 코드를 테스트하기 위해 PHPUNIT를 사용하는 방법은 무엇입니까?Mar 10, 2025 pm 06:25 PM

이 기사는 PHP 7 코드를 테스트하기 위해 PHPUnit 사용을 PHP 개발자에게 안내합니다. 이전 PHP 버전의 원활한 전환을 강조하여 PHP 7의 기능 (유형 힌트, 리턴 유형)을 강조하여 개선 된 테스트 견고성을 강조합니다. 기사

PHP 7과 함께 Codeigniter 프레임 워크를 사용하는 방법은 무엇입니까?PHP 7과 함께 Codeigniter 프레임 워크를 사용하는 방법은 무엇입니까?Mar 10, 2025 pm 06:24 PM

이 기사는 Codeigniter를 PHP 7과 함께 사용하여 프레임 워크의 호환성, PHP 7의 엔진 향상의 성능 향상 및 중요한 보안 모범 사례를 강조합니다. 설정, 구성 및 PHP 7 Featu 활용을 다룹니다

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기