从PHP字符串执行PHP函数

时间:2013-12-14 01:41:31

标签: php

我搜索谷歌和stackoverflow,但我找不到任何结果。 我想知道你是否可以从字符串执行PHP函数。 为什么? 我有一个在数组后创建表的函数。 我想要的是,例如将unix时间戳格式化为日期但动态。 实施例

 'Register date' => array(
      "<?php date('h:m:i',{RegDate}); ?>"
  ),

有可能吗? (我已经有一个将{RegDate}转换为相应行的函数,所以我唯一需要的是以某种方式执行函数日期,如果可能的话)

我尝试了eval,甚至只是一个简单的回声,但每次htmls评论我的php标签,它们就变成了

 <!--?php date('h:m:i',1362159376); ?-->

3 个答案:

答案 0 :(得分:2)

您可以使用匿名函数:

'Register date' => function($regdate) {
    return date('h:m:i', $regdate);
},

然后这样称呼它:

call_user_func($x['Register date'], $row['date']);

答案 1 :(得分:0)

为什么不使用

'Register date' => array(
    date('h:m:i', RegDate))

从我所看到的,没有理由尝试对此使用变量解析,因为date()已经返回一个字符串。如果您真的需要,可以使用以下内容:

'Register date' => array(
    "{date('h:m:i', RegDate)}")

整个表达式需要在要执行的字符串的{}内部,这就是为什么在你的例子中你得到的是时间戳而不是表达式的其余部分。

答案 2 :(得分:0)

  

我想知道你是否可以从字符串中执行php函数。

是的,你可以,但似乎这不是你的问题。执行“from string”函数:

<?php
    call_user_func('date', 'h:m:i', RegDate);

因此,如果“动态”意味着您也想要告诉函数名称,那么这就是方法。

您还可以将参数作为数组传递:

<?php
    call_user_func_array('date', array('h:m:i', RegDate));