2014-10-11 2 views
0

Для моей функции connectDB мне нужно обрезать все параметры, и я не хочу делать это отдельно для каждого из них.DB conn method + Первый символ имени переменной в PHP

$g_app = 'we bsite'; 

$g_dbc_type = ''; 
$g_dbc_host = ''; 
$g_dbc_user = ''; 
$g_dbc_pass = ''; 
$g_dbc_db = ''; 

function connectDB ($app, $type, $host, $user, $pass, $db) { 
    if ($app !== '') { 
     $params_vals = array ($app, $type, $host, $user, $pass, $db); 

     // I WANT TO DO THIS... ---------------------------------------- 
     foreach ($params_vals as $val) { 
      if ($val !== '') { 
       $trimmed_val = str_replace (' ', '', $val); 

Получить первый символ с переменным именем? Поскольку он находится в цикле foreach, я не уверен, что смогу достичь своей цели таким образом, а если нет, есть ли другой способ?

   $first_char = ''; 

       if (!isset (${ $first_char })) { 
        $ { $first_char } = $trimmed_val; 
       } 
       else { 
        die(); // Variable should not been already set, but it is. 
       } 
       echo ${ $first_char } . ':<br />' . $trimmed_val; 
      } 
     } 

     // ...INSTEAD OF THIS... ------------------------------------- 
     $a = str_replace (' ', '', $app); 
     $t = str_replace (' ', '', $type); 
     $h = str_replace (' ', '', $host); 
     $u = str_replace (' ', '', $user); 
     $p = str_replace (' ', '', $pass); 
     $d = str_replace (' ', '', $db); 

     // ... 
     if ($a === 'website') { 
      // ... 
     } 
    } 
    else { 
     die(); // App has not been chosen. 
    } 
} 

connectDb ($g_app, $g_dbc_type, $g_dbc_host, $g_dbc_user, $g_dbc_pass, $g_dbc_db); 

Кроме того, является ли этот способ связи несовместимым с безопасностью?

Благодарим вас за ваши предложения и отзывы.

+0

Обычно данные, используемые для подключения к базе данных жёстко или извлекаются из доверенного и защищенного файла конфигурации. Зачем вам это нужно? – ForguesR

+0

Поскольку приложения для ИТ-инфраструктуры фирмы должны основываться на том же индексе, я бы хотел подключиться к базе данных только с одной функцией, и это самый простой способ, о котором я мог думать. – falcon

+0

@ForguesR Все о программировании, которое я узнал дома, поэтому я не знаю общих методов. Не могли бы вы предложить мне другой способ несколькими словами? Также я прошу прощения за некоторые опечатки, мой английский не очень хорош. – falcon

ответ

0

Здесь сойдите с ума.

$params = array('test' => 'some things that are meant to be trimmed '); 

function trimParams($params = NULL){ 
    if($params == NULL){ 
     return false; 
    } 

    foreach($params as $param => $value){ 
     $return[$param] = str_replace(' ', '', $value); 
    } 
    return $return; 
} 

print_r(trimParams($params)); 
0

Вы можете получить аргументы текущей функции с помощью func_get_args в виде массива.

Пример из php.net

<?php 
function foo() 
{ 
    $arg_list = func_get_args(); 
    for ($i = 0; $i < count($arg_list); $i++) { 
     echo "L'argument $i est : " . $arg_list[$i] . "<br />\n"; 
    } 
} 

foo(1, 2, 3); 
Смежные вопросы