Variable Function in Function Definition?
我有三個functions如下:
function int_register() {
$num_args = func_num_args();
for ($i = 0; $i < $num_args; $i ++) {
$parameter = func_get_arg($i);
if (isset($_REQUEST[$parameter])) {
global $$parameter;
$$parameter = intval($_REQUEST[$parameter]);
}
}
}
function string_register() {
$num_args = func_num_args();
for ($i = 0; $i < $num_args; $i ++) {
$parameter = func_get_arg($i);
if (isset($_REQUEST[$parameter])) {
global $$parameter;
$$parameter =
trim(escape_string(htmlentities($_REQUEST[$parameter])));
}
}
}
function array_register() {
$num_args = func_num_args();
for ($i = 0; $i < $num_args; $i ++) {
$array = func_get_arg($i);
if (isset($_REQUEST[$array])) {
$process = "";
foreach ($_REQUEST[$array] as $rip) {
$process[] = trim(escape_string(htmlentities($rip)));
}
global $$array;
$$array = array();
foreach ($process as $parameter) {
array_push($$array, $parameter);
}
}
}
}
因為很明顯的可以看到大部分的程式碼都是重複的,
所以我想把它們整併成單一一個程式碼區塊,
但是卻不得其解。
我有試過variable function的概念,
但似乎無法應用在這個情況下:
$lolz = array('int_register', 'string_register', 'array_register');
foreach ($lolz as $lol) {
function $lol() {
[DEFINITIONS]
}
}
我知道如果改寫成這樣的話事情會變得很簡單:
function register($flag) {
switch ($flag) {
case "int":
[DEFINITION]
}
}
但是基於既定coding style的理由沒有辦法優先考慮以上選項,
所以想請教一下各位,
不知是否還有其他寫法,
可以達成簡併這三段程式碼的目標呢?
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.235
→
12/11 16:40, , 1F
12/11 16:40, 1F
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
0
18