> 백엔드 개발 > PHP 튜토리얼 > PHP 소스 코드 5에 대한 간략한 토론: 배열 배열 생성에 대하여

PHP 소스 코드 5에 대한 간략한 토론: 배열 배열 생성에 대하여

不言
풀어 주다: 2023-04-01 21:52:02
원래의
1603명이 탐색했습니다.

이 기사에서는 주로 PHP 소스 코드 5에 대해 소개합니다. 배열 배열 생성에 대해 특정 참조 값이 있습니다. 이제는 필요한 친구가 참조할 수 있습니다.

Cli를 사용하여 PHP 디버깅 환경에서 PHP를 실행하세요. 파일
C와 어휘 분석에 익숙하지 않기 때문에 단계별로 코드를 추적합니다.
사용된 PHP 파일은 다음과 같습니다.

 <?PHP
 $a = array(1, 2, 3);
 var_dump($a);
로그인 후 복사

코드는 다음과 같이 간단히 추적됩니다.

 ===>php_execute_script(&file_handle TSRMLS_CC);     //php_cli.c line1130
 ==> retval = (zend_execute_scripts(ZEND_REQUIRE TSRMLS_CC, NULL, 3, prepend_file_p, primary_file, append_file_p) == SUCCESS);    //    main.c 2023行
 ==> EG(active_op_array) = zend_compile_file(file_handle, type TSRMLS_CC);      //    zend.c 1126行
 ==> compiler_result = zendparse(TSRMLS_C);   //    zend_language_scanner.c  3420行==> zend-language_parse.c     2773行==>case 382:     { zend_do_init_array(&(yyval), &(yyvsp[(1) - (1)]), NULL, 0 TSRMLS_CC); }    //    zend_language_parser.c  4689行
    ==>void zend_do_init_array(znode *result, znode *expr, znode *offset, zend_bool is_ref TSRMLS_DC)    //    zend_compile.c 3348行 
 
 ==>case 380:    { zend_do_add_array_element(&(yyval), &(yyvsp[(3) - (3)]), NULL, 0 TSRMLS_CC); }//    zend_language_parser.c  4684行
    ==>void zend_do_add_array_element(znode *result, znode *expr, znode *offset, zend_bool is_ref TSRMLS_DC)    //    zend_compile.c 3371行
로그인 후 복사

코드 추적 과정에서 PHP 소스 코드가 구문 트리를 생성할 때 배열과 첫 번째 숫자에 도달하면 배열과 관련된 작업이 없음을 발견했습니다. 1 뒤의 쉼표를 구문 분석하면 zend_do_init_array 함수가 호출되어 위의 내용은 단지 추적 과정일 뿐입니다. 제 수준이 제한적이어서 어휘 분석 및 구문 분석에 대해 잘 모릅니다.

또 다른: 캐리지 리턴 및 라인 피드가 없는 경우. PHP 프로그램의 마지막 코드 줄 이후에는 소스 코드 파일을 읽을 때 여러 문자가 깨져 있는 것을 볼 수 있습니다.


계속하려면...

이 글은 여기까지입니다. 모든 사람의 연구에 도움이 되기를 바랍니다. 더 많은 관련 내용을 보시려면 PHP 중국어 웹사이트를 주목해주세요!

관련 권장 사항:

PHP 소스 코드 4에 대한 간략한 토론: count 함수에 대해


PHP 소스 코드 3에 대한 간략한 토론: strrchr, strstr, stristr 함수에 대해


간략한 토론 PHP 소스 코드 2: strlen, strtolower , strtoupper, ord, chr 함수 소개

위 내용은 PHP 소스 코드 5에 대한 간략한 토론: 배열 배열 생성에 대하여의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿