다음 칼럼은 workerman 사용법 튜토리얼에서 PHP 콜백을 작성하는 여러 가지 방법을 소개하는 내용이 필요한 친구들에게 도움이 되기를 바랍니다!
는 workerman에서 자주 사용됩니다. 먼저 콜백 함수를 작성하고 이 함수를 사용하여 특정 동작이 트리거될 때 관련 로직을 처리합니다.
PHP에서 가장 일반적으로 사용되는 콜백 작성 방법은 다음과 같습니다
익명 함수는 콜백으로 사용됩니다.
익명 함수(익명 함수)는 클로저라고도 불리며 지정된 이름 없이 함수를 임시로 생성할 수 있도록 해줍니다. 콜백 함수 인수로 가장 일반적으로 사용되는 값입니다. 물론 다른 응용 프로그램도 있습니다.
익명 함수의 콜백은 이를 변수(또는 개체의 속성)에 할당하는 경우가 많습니다.
$add = function($number1,$number2){ return $number1+$number2; }; echo $add(1,10);
최종 결과는 11입니다.
weChat 결제 결과 알림을 처리할 때에도 사용되는 자체 yii2-wx를 포함하여 현재 많은 프레임워크에서 사용되는 use라는 사용법이 있습니다.
간단히 말하면 익명 함수를 설정할 때 상위 범위에서 변수를 상속할 수 있습니다. 예를 들어 다음 코드
$number = 10; $add = function($number1,$number2) use ($number){ return $number1+$number2 + $number; }; echo $add(1,10);
에서 결과는 21입니다. 예, 익명 함수 본문은 상속된 범위를 사용할 수 있습니다. 변수 $번호.
한 가지 주목해야 할 점은 이 상속은 함수가 정의될 때 결정된다는 것입니다. 예를 들어 다음 코드는
$number = 10; $add = function($number1,$number2) use ($number){ return $number1+$number2 + $number; }; $number = 11; echo $add(1,10);
결과가 여전히 21이고 후속 재할당은 효과가 없습니다.
그럼 이 문제를 어떻게 해결하나요?
@nai8@
다음과 같이 상속된 변수를 참조로 설정하면 됩니다.
$number = 10; $add = function($number1,$number2) use (&$number){ return $number1+$number2 + $number; }; $number = 11; echo $add(1,10);
완료하면 22가 나타납니다. 1 + 10 + 11;
Workerman에서 익명 함수를 콜백으로 사용하는 일반적인 방법은 다음과 같습니다.
use Workerman\Worker; require_once __DIR__ . '/Workerman/Autoloader.php'; $http_worker = new Worker("http://0.0.0.0:2345"); // 匿名函数回调 $http_worker->onMessage = function($connection, $data) { // 向浏览器发送hello world $connection->send('hello world'); }; Worker::runAll();
일반적인 함수를 콜백으로 사용하는 경우
익명만큼 자세한 내용은 없습니다. 함수를 살펴보세요.
function add($number1,$number2){ return $number1+$number2; }; $add = "add"; echo $add(1,10);
여기서는 용도가 없고, 함수 정의 순서와 변수 할당 순서는 위아래가 될 수 있습니다. 구문상으로 이것은 단지 추가할 변수 할당일 뿐입니다. add()를 사용하면 Workerman의 일반적인 사용법은 다음과 같습니다
use Workerman\Worker; require_once __DIR__ . '/Workerman/Autoloader.php'; $http_worker = new Worker("http://0.0.0.0:2345"); // 匿名函数回调 $http_worker->onMessage = 'on_message'; // 普通函数 function on_mesage($connection, $data) { // 向浏览器发送hello world $connection->send('hello world'); } Worker::runAll();
Class 메소드를 콜백으로
이전 지식을 학습한 후 콜백으로 클래스 메소드를 익히면 쉽습니다. 콜백 함수로서의 클래스;
workererman에서의 사용법
use Workerman\Worker; require_once __DIR__ . '/Workerman/Autoloader.php'; // 载入MyClass require_once __DIR__.'/MyClass.php'; $worker = new Worker("websocket://0.0.0.0:2346"); // 创建一个对象 $myObject = new MyClass(); $worker->onMessage = [$myObject, 'onMsg']; Worker::runAll();
MyClass의 onMsg 메소드를 $worker->onMessage에 대한 콜백으로 할당합니다.
콜백으로서의 클래스 정적 메서드
이것이 가장 간단합니다. 코드를 살펴보세요.
use Workerman\Worker; require_once __DIR__ . '/Workerman/Autoloader.php'; // 载入MyClass require_once __DIR__.'/MyClass.php'; $worker = new Worker("websocket://0.0.0.0:2346"); $worker->onMessage = [$myObject, 'onMsg']; Worker::runAll();
MyClass의 정적 메서드 onMsg를 작업자->onMessage에 대한 콜백으로 할당합니다. 정적 메서드이므로 onMsg에서는 사용할 수 없습니다.
위 내용은 Workerman을 배우기 전에 알아야 할 몇 가지 PHP 콜백 작성 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

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

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
