Manuel PHP
Précédent |  | Suivant

# parsekit_compile_string

(PECL)

parsekit_compile_string -- Compile une chaîne de code PHP et retourne le tableau d'opcode résultant

## Description

array parsekit_compile_string ( string phpcode [, array &errors [, int options]] )

Avertissement
Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

## Liste de paramètres

phpcode

  Une chaîne contenant du code PHP. Similaire à l'argument de eval().

errors

  Un hash 2D des erreurs (incluant les erreurs fatales) rencontrées pendant la compilation. Retourné par référence.

options

  Soit `PARSEKIT_QUIET`, soit `PARSEKIT_SIMPLE`. Pour produire plusieurs degrès de retour dans la chaîne retournée.

## Valeurs de retour

Retourne un tableau complexe multi-dimensionnel, structuré comme ci-dessous.

## Exemples

Exemple 1. Exemple avec parsekit_compile_string()

`<?php $ops = parsekit_compile_string(' echo "Foo\n"; ', $errors, PARSEKIT_QUIET); var_dump($ops); ?>`

L'exemple ci-dessus va afficher :

    array(20) {
      ["type"]=>
      int(4)
      ["type_name"]=>
      string(14) "ZEND_EVAL_CODE"
      ["fn_flags"]=>
      int(0)
      ["num_args"]=>
      int(0)
      ["required_num_args"]=>
      int(0)
      ["pass_rest_by_reference"]=>
      bool(false)
      ["uses_this"]=>
      bool(false)
      ["line_start"]=>
      int(0)
      ["line_end"]=>
      int(0)
      ["return_reference"]=>
      bool(false)
      ["refcount"]=>
      int(1)
      ["last"]=>
      int(3)
      ["size"]=>
      int(3)
      ["T"]=>
      int(0)
      ["last_brk_cont"]=>
      int(0)
      ["current_brk_cont"]=>
      int(-1)
      ["backpatch_count"]=>
      int(0)
      ["done_pass_two"]=>
      bool(true)
      ["filename"]=>
      string(17) "Parsekit Compiler"
      ["opcodes"]=>
      array(3) {
        [8594800]=>
        array(5) {
          ["opcode"]=>
          int(40)
          ["opcode_name"]=>
          string(9) "ZEND_ECHO"
          ["flags"]=>
          int(768)
          ["op1"]=>
          array(3) {
            ["type"]=>
            int(1)
            ["type_name"]=>
            string(8) "IS_CONST"
            ["constant"]=>
            &string(4) "Foo
    "
          }
          ["lineno"]=>
          int(2)
        }
        ["859484C"]=>
        array(6) {
          ["opcode"]=>
          int(62)
          ["opcode_name"]=>
          string(11) "ZEND_RETURN"
          ["flags"]=>
          int(16777984)
          ["op1"]=>
          array(3) {
            ["type"]=>
            int(1)
            ["type_name"]=>
            string(8) "IS_CONST"
            ["constant"]=>
            &NULL
          }
          ["extended_value"]=>
          int(0)
          ["lineno"]=>
          int(3)
        }
        [8594898]=>
        array(4) {
          ["opcode"]=>
          int(149)
          ["opcode_name"]=>
          string(21) "ZEND_HANDLE_EXCEPTION"
          ["flags"]=>
          int(0)
          ["lineno"]=>
          int(3)
        }
      }
    }

## Voir aussi

parsekit_compile_file()

Précédent | Sommaire | Suivant
parsekit_compile_file | Niveau supérieur | parsekit_func_arginfo