【发布时间】:2010-09-28 03:08:08
【问题描述】:
我有一些 PHP 5.3 代码可以构建一个要传递给视图的数组。这是我的代码。
# Select all this users links.
$data = $this->link_model->select_user_id($this->user->id);
if (count($data) > 0) {
# Process the data into the table format.
$table = array
(
'properties' => array
(
'delete_link_column' => 0,
),
'callbacks' => array
(
# Callback for the name link.
function($value) {
return sprintf('<a href="/links/view/name/%s">%s</a>', $value, $value);
},
# Callback for the category link.
function($value) {
return sprintf('<a href="/category/view/name/%s">%s</a>', $value, $value);
},
# Callback for the creation date.
function($value) {
return date('jS M Y', $value);
},
# Callback for the delete link.
function($value) {
return sprintf('<a href="links/delete/name/%s">delete</a>', $value);
},
),
'columns' => array
(
'name', 'category', 'creation date',
),
'data' => array
(
),
'sorting' => array
(
'sort' => false,
),
);
但是问题是我不能在 PHP 5.2 中使用匿名函数,这是我必须上传作业的服务器。视图需要定义回调函数以便调用它们。
将这个 PHP 代码转换为不使用匿名函数的最佳方法是什么?谢谢。
【问题讨论】:
-
何时、如何以及为什么调用这些回调?
-
@deceze 这个数组被传递给一个视图,该视图处理数组并根据数据创建一个表。为每列中的数据调用回调以格式化数据。因此,如果第一列中的表格单元格值为“Boats”,视图会将其处理为值“Boats 我真的不想要更改视图,因为我有很多控制器像这样使用它。