>백엔드 개발 >PHP 튜토리얼 >보헤미안 랩소디 PHP 빈 함수 지침

보헤미안 랩소디 PHP 빈 함수 지침

WBOY
WBOY원래의
2016-07-29 08:40:321268검색

변수가 비어 있는지 여부를 결정합니다.
하지만 내 기억에는 오랫동안 빈 ​​것이 빈지 여부를 결정할 수 있어야 한다고 생각했는데, 어느 날 이렇게 되었습니다. ( $a))를 사용할 때 오류가 발생했습니다." 라고 나오더니 매뉴얼을 확인해보니 빈 함수는 변수가 비어 있는지 여부만 판별할 수 있고, 문자열(또는 함수 반환 값을 포함한 다른 값)인지 여부는 판별할 수 없다는 것을 알게 되었습니다. 비어 있습니다. 나는 이것이 표면적인 이유일 뿐이라는 것을 알고 있었지만 더 깊은 이유를 이해하지 못했습니다.
최근 PHP 커널에 관심이 생기고 이 문제가 다시 생각나서 다른 분들의 경험을 바탕으로 다음과 같은 코드를 작성해 보았습니다.

코드 복사 코드는 다음과 같습니다:


echo "

" 
$tokens = token_get_all('foreach($tokens as $t){
if (is_array($t)){
printf("%s t %s n", token_name($t[0]) , htmlspecialchars ($t[1]));
}else{
         printf("t%sn", $t) : (이해가 되지 않으면 "목록"을 살펴보세요. of Parser Tokens” 섹션)
T_OPEN_TAG T_EMPTY 비어 있음
(

T_STRING 트림
(
T_VARIABLE $a
)
)
T_CLOSE_TAG ?>
변수에 해당하는 토큰은 T_VARIABLE이어야 하며, Trim($a)은 T_STRING에 해당합니다. 따라서 "empty(trim($a));"를 직접 실행하면 다음과 같은 실행 오류가 발생합니다.
치명적인 오류: 쓰기 컨텍스트에서 함수 반환 값을 사용할 수 없습니다.
직접 실행하려면 어떻게 해야 합니까? 나중에 모직물을 비울까요? 결과는 실행 오류가 아니라 구문 분석 오류입니다.
구문 분석 오류: 구문 분석 오류, `T_STRING' 또는 `T_VARIABLE' 또는 `'$''가 필요합니다...
(이 오류 메시지는 혼란스러운 느낌을 줍니다. . )
뷰 문자열에 해당하는 토큰은 T_CONSTANT_ENCAPSED_STRING(문자열 구문)입니다. 토큰마다 매개변수가 다르지만 T_VARIABLE이 아닙니다. 컴파일 단계에서 오류가 발생했을 것입니다. . .
그래서 저는 그 전문가들의 예를 따라 PHP의 소스코드를 살펴보았습니다. . . 그런데 아직 관련 코드를 읽어보지 못했는데 ㅎㅎ 다음에 또 공유할게요~
마지막으로,empty는 함수가 아니라 언어 구조입니다!
(print, echo, include, require, die 등과 같이 모두 언어 구조입니다. 인터넷의 일부 기사에서는 print에 반환 값이 있으면 함수라고 부르는 것이 잘못되었다고 말합니다)
위 내용은 보헤미안 랩소디의 내용을 포함하여 보헤미안 랩소디 PHP 빈 함수를 사용하기 위한 지침을 소개하고 있으니 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.


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