请问我想eval("\$str = \"date('Ymd')\";");
echo $str;
exit;
输出的是字符串date('Ymd'),
我想格式化为时间,如何操作谢谢

解决方案 »

  1.   

    <?php 
    eval("\$str = date('Ymd');");
    echo $str;//20100406
    ?>
      

  2.   

    要赋给$str的东西很明确啊,用eval干什么?
    直接$str = date('Ymd');就行了啊,你要转数字型可以intval啊。
    以下的eval还有点意义:
    <?php
    $str = "date('Ymd')";
    eval("\$s = $str;");
    var_dump($s);
    ?>
      

  3.   

    谢谢楼上朋友,那请问
    eval("\$str = date('Ymd')".".txt;");
    echo $str;//20100406
    exit;
    如何输出".txt"呢我试过不行啊
      

  4.   

    楼主对eval真是情有独钟啊。
    eval("\$str = date('Ymd',time()).'.txt';");
    echo $str;
    exit();
      

  5.   

    eval 参数必须是合法的php语句
    如果
    echo date('Ymd',time()).'.txt';
    是正确的,那么echo eval("return date('Ymd',time()).'.txt';");eval("\$str = date('Ymd',time()).'.txt';");
    echo $str;都是正确的
      

  6.   

    谢谢那请老大帮忙解决这个帖子吧
    http://topic.csdn.net/u/20100402/09/c7c36007-e89d-4a30-8128-842c18e2e356.html
    就结贴了
      

  7.   

    eval有很多用途,比如下面这种:
    class Singleton
    {
        public static $instance;    private function __construct()
        {
        
        }     public static function getInstance( $classname, $arr_attr )
        {
            if(self::$instance == null)
            {
             eval('self::$instance = new $classname('. implode(',',$arr_attr).');' );
            }        return self::$instance;
        }
    }
      

  8.   

    这个单例模式类的getInstance方法需要一个类名和参数序列来作为参数,以单例方式new一个类。
    这里采用eval的作用是优先解析implode(',',$arr_attr)这个变量作为形参。
    $arr_dbattr = array(
    'dbhost' => '\'localhost\'', 'dbuser' => '\'root\'', 'dbpw' => '\'\'', 'dbname' => '\'test\'', 'pconnect' => 0
    );$db = Singleton::getInstance('db',$arr_dbattr);
    这里有个字符串解析优先级的问题,所以可以使用eval来做。