Files
doc-fr/reference/misc/functions/eval.xml
Yannick Torres 3d20fe648b &php; => PHP
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@261459 c90b9560-bf6c-de11-be94-00142212c4b1
2008-06-21 20:51:48 +00:00

146 lines
3.9 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.30 $ -->
<!-- EN-Revision: 1.25 Maintainer: yannick Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.eval" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>eval</refname>
<refpurpose>Exécute une chaîne comme un script PHP</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>eval</methodname>
<methodparam><type>string</type><parameter>code_str</parameter></methodparam>
</methodsynopsis>
<para>
Évalue la chaîne <parameter>code_str</parameter> comme un script PHP.
Parmi les utilisations possibles, cette fonction permet de stocker
du code dans une base de données, pour utilisation ultérieure.
</para>
<para>
Il faut bien garder en tête que le code passé
à <function>eval</function> doit être valide, y
compris les points virgules de fin de lignes et les séquences
d'échappement, sinon l'exécution se terminera. Pour mélanger des sorties
HTML et du code PHP, vous pouvez utiliser une balise de fermeture de
PHP pour quitter le mode PHP.
</para>
<para>
N'oubliez pas que les variables utilisées dans la fonction
<function>eval</function> resteront accessibles dans le script principal.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>code_str</parameter></term>
<listitem>
<para>
Le code à évaluer.
<parameter>code_str</parameter> ne doit pas nécessairement contenir des
<link linkend="language.basic-syntax.phpmode">balises d'ouvertures de
PHP</link>.
</para>
<para>
Une commande <literal>return</literal> terminera l'évaluation de
la chaîne immédiatement.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<function>eval</function> retourne &null; sauf si
<literal>return</literal> est appelé dans le code évalué,
auquel cas la valeur passée à <literal>return</literal>
est retournée. Dans le cas d'une erreur de syntaxe dans
le code évalué, <function>eval</function> retourne &false;
et l'exécution du code suivant continue normalement. Il
n'est pas possible d'attraper l'erreur d'analyse de la
fonction <function>eval</function> en utilisant la fonction
<function>set_error_handler</function>.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemple avec <function>eval</function> - concaténation de texte</title>
<programlisting role="php">
<![CDATA[
<?php
$string = 'tasse';
$name = 'café';
$str = 'Ceci est une $string avec mon $name dedans.<br />';
echo $str;
eval( "\$str = \"$str\";" );
echo $str;
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Ceci est une $string avec mon $name dedans.
Ceci est une tasse avec mon café dedans.
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&note.language-construct;
&tip.ob-capture;
<note>
<para>
Dans le cas d'une erreur fatale dans le code évalué, l'ensemble du script se
terminera.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>call_user_func</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->