Maison >développement back-end >tutoriel php >Une brève discussion sur le code source PHP cinq : à propos de la création d'un tableau

Une brève discussion sur le code source PHP cinq : à propos de la création d'un tableau

不言
不言original
2018-06-28 16:41:391599parcourir

Cet article introduit principalement une brève discussion sur le code source PHP 5 : concernant la création de tableaux, il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent se référer au

Débogage. en PHP Utilisez cli pour exécuter des fichiers PHP dans l'environnement
pour suivre le code étape par étape Comme je ne suis pas familier avec le C et l'analyse lexicale
, les fichiers PHP utilisés sont les suivants :

 <?PHP
 $a = array(1, 2, 3);
 var_dump($a);

Le code est simplement tracé comme suit :

 ===>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行

Au cours du processus de suivi du code, il a été constaté que lorsque le code source PHP génère un arbre de syntaxe, il n'y a aucune opération liée au tableau lors de la rencontre du array et le premier numéro. Il ne sera appelé que lorsque la virgule après 1 sera analysée. Fonction zend_do_init_array, créer un tableau

Ce qui précède est juste un processus de suivi, il n'y a aucune explication du code, en raison de mes limites. niveau, je ne connais pas grand chose en analyse lexicale et analyse syntaxique,
Autre : Si la dernière ligne de code du programme PHP Il n'y a pas de retour chariot ni de saut de ligne à la fin. Lors de la lecture du fichier de code source, vous. verra un tas de caractères tronqués

À suivre...

Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. , veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Une brève discussion du code source PHP 4 : À propos de la fonction de comptage

Une brève discussion de Code source PHP 3 : À propos de la fonction strrchr, strstr, stristr

Une brève discussion sur le code source PHP 2 : À propos de la fonction strlen, strtolower, strtoupper, ord, chr

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn