定義と使用法
eval() 関数は、PHP コードに従って文字列を計算します。
文字列は正当な PHP コードである必要があり、セミコロンで終わる必要があります。
コード文字列内で return ステートメントが呼び出されない場合は、NULL が返されます。コードに解析エラーがある場合、eval() 関数は false を返します。
構文
?
eval (phpcode) eval (phpcode)
|
参数 |
描述 |
phpcode |
必需。规定要计算的 PHP 代码。 |
提示和注释
注释:返回语句会立即终止对字符串的计算。
注释:该函数对于在数据库文本字段中供日后计算而进行的代码存储很有用。
例子
?
<?php
$string = "beautiful" ;
$time = "winter" ;
$str = 'This is a $string $time morning!' ;
echo $str . "<br />" ;
eval ( "$str = "$str";" );
echo $str ;
?>
|
输出:
This is a $string $time morning!
This is a beautiful winter morning!
<br>eval() 函数在CodeIgniter框架里也有用到。在 /system/database/DB.php 文件中,根据系统的配置动态的定义了一个类 CI_DB,具体代码片段如下:
ログイン後にコピー
?
if ( ! isset( $active_record ) OR $active_record == TRUE)
{
require_once (BASEPATH. 'database/DB_active_rec.php' );
if ( ! class_exists ( 'CI_DB' ))
{
eval ( 'class CI_DB extends CI_DB_active_record { }' );
}
}
else
{
if ( ! class_exists ( 'CI_DB' ))
{
eval ( 'class CI_DB extends CI_DB_driver { }' );
}
}
require_once (BASEPATH. 'database/drivers/' . $params [ 'dbdriver' ]. '/' . $params [ 'dbdriver' ]. '_driver.php' );
// Instantiate the DB adapter
$driver = 'CI_DB_' . $params [ 'dbdriver' ]. '_driver' ;
$DB = new $driver ( $params );
|
パラメータ |
説明 |
phpcodeが必要です。計算するPHPコードを指定します。 🎜🎜🎜🎜🎜ヒントとメモ🎜🎜🎜注: 🎜 return ステートメントは文字列の評価を直ちに終了します。 🎜🎜🎜コメント: 🎜この関数は、後の計算のためにデータベースのテキストフィールドにコードを保存するのに役立ちます。 🎜🎜🎜例🎜🎜🎜?🎜🎜🎜🎜🎜🎜🎜<?php
🎜🎜$string
=
"美しい"
;
🎜🎜$time
=
"冬"
;
🎜🎜$str
=
'これは $string $time 朝です!'
;
🎜🎜 echo
$str
.
"<br />"
;
🎜🎜 eval
(
"$str = "$str";"
);
🎜🎜echo
< code>$str;
🎜🎜?>
🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜出力: 🎜これは $string $time の朝です! 🎜🎜美しい冬の朝ですね!🎜🎜rrreee🎜🎜?🎜🎜🎜🎜🎜🎜🎜if
( ! isset(
$active_record
) または
$active_record
== TRUE)
🎜🎜
{
🎜🎜
require_once
(BASEPATH.
'database/DB_active_rec.php'
);
🎜🎜
if
( !
class_exists
(
'CI_DB' code><code>))
🎜🎜
{
🎜🎜
eval
(<code>'class CI_DB extends CI_DB_active_record { }'
);
🎜🎜
}
🎜🎜 <code>}
🎜🎜
else
🎜🎜
{
🎜🎜
if
( !
class_exists
(
'CI_DB'
))
🎜🎜
{
🎜🎜
eval
(
>'class CI_DB extends CI_DB_driver { }'
);
🎜🎜
}
🎜🎜
}
🎜🎜
require_once
(BASEPATH.
'database/drivers/'
.
$params
[
'dbdriver'
].
'/'
.
$params
[
'dbdriver'
].
'_driver. php'
);
🎜🎜
// DB アダプターをインスタンス化します
🎜🎜
$ driver
=
'CI_DB_'
.
$params
[
>'dbdriver'
].
'_driver'
;
🎜🎜
$DB<code>=
new
$driver
(
$params
);
🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜
🎜
上記では、関連コンテンツも含めて 2778085001 を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。 🎜
🎜
🎜