Re: Variable number of parameters

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Philip Thompson wrote:
Is it possible to grab a variable number of parameters and send the appropriate amount to another function?

<?php
// Some class
$this->db->prepare("SELECT * FROM `table` WHERE (`id`=?)");
$this->db->bind('ii', $id1);

$this->db->prepare("SELECT * FROM `table` WHERE (`id`=? AND `other_id`=?)");
$this->db->bind('ii', $id1, $id2);

// DB class
function bind () {
  $args = func_get_args();
  $this->statement->bind_param($args[0], $args[1], ...);
}
?>

Ok, is it possible to send any number of variables to db->bind() in order to send those to statement->bind_param()?

Or, if someone else has a better db abstraction method, feel free to educate...

Thanks,
~Phil


<?php

##### WARNING ####
# The following example uses eval() to do the execution.
# The following answer is a YMMV answer.
# Be careful with it.  I could be a sleeping snake waiting to bite...
#####

function myFunction () {

  // Get your list of values passed in
  $values = func_get_args();

  // try and secure your data a little
  foreach ( $values AS $k => $v ) {
    // Check to see if this value is a string, if so escape the data
    // Else, let is pass through untouched!
    if ( is_string($v) ) {
      $values[$k] = escapeshellarg($v);
    } else {
      $values[$k] = $v;
    }
  }

  // Put it all together in one long string
  $arguments = join(', ', $values);


  // Combined your argument string and function call
  // Process and return results.
  return eval("return anotherFunction({$arguments})");

}

myFunction (1, 5, 'Hi');

// This will result in calling anotherFunction as such
anotherFunction ('1, 5, Hi');
// and not
anotherFunction (1, 5, 'Hi');
?>

If this isn't what you are looking for, please explain a little more!

--
Jim Lucas

   "Some men are born to greatness, some achieve greatness,
       and some have greatness thrust upon them."

Twelfth Night, Act II, Scene V
    by William Shakespeare


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux