방금 php.net에서 호출 가능한 유형에 대해 읽었으며 callable
키워드를 사용하면 함수를 다른 함수에 인수로 전달할 수 있다고 가정 합니다. 그러나 나는 경고를 받고있다. 내가 시도한 것은 다음과 같습니다.
<?php
function helloWorld()
{
echo 'Hello World!';
}
function handle(callable $fn)
{
$fn();
}
handle(helloWorld); // Outputs: Hello World!
?>
그러나 때때로 다음과 같은 오류가 발생합니다.
Parse error: syntax error, unexpected 'function' (T_FUNCTION), expecting variable (T_VARIABLE)
그리고 때때로
Warning: Use of undefined constant helloWorld - assumed 'helloWorld' (this will throw an Error in a future version of PHP) in C:\Projects\Sandbox\myphp on line 12
Q1. PHP helloWorld
가 이미 함수로 명시 적으로 정의 된 변수 일 것으로 예상 하는 이유는 무엇입니까?
Q2. 분명히 callable
함수 정의에서 키워드 를 제거해 도 아무런 차이가 없습니다. 왜?
다음과 같이 인수를 따옴표로 묶어야합니다.
handle('helloWorld');
보다는
handle(helloWorld);
PHP 문서를 위해callable
상태가 "A PHP 함수는 그 이름을 문자열로 전달한다."
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다