Hey, developers,
please critique my code, I believe you will have some tips about the foreach();
function send_message($args) {
global $oDB;
//defining environment
if ( ! empty( $oDB ) ) {
$mode = 'OOP';
}
else {
$mode = 'plain';
}
if ( $from === 0 ) {
$from = $_SESSION['login'];
}
$values = array(
'to', 'from', 'message', 'date' => 'NOW()', 'subject' => 'none'
);
foreach ( $values as $var_name => $default_value ) {
//if no default value
if ( is_int( $var_name ) ) {
${$default_value} = $args[$default_value];
}
//var is not set, using default value
elseif ( ! isset( $args[$var_name] ) ) {
${$var_name} = $default_value;
}
//var is set
else {
${$var_name} = $args[$var_name];
}
//$oDB escapes automatically
if ( $mode === 'plain' ) {
${$var_name} = mysql_real_escape_string( ${$var_name} );
}
}
if ( $mode === 'OOP' ) {
$aMessage = array(
compact('to'),
compact('from'),
compact('message'),
'date' => 'NOW()',
compact('subject'),
);
$oDB->save('[messages]', $aMessage);
}
else {
mysql_query("INSERT INTO `[messages]` SET `to` = '$to', `from` = '$from', `message` = '$message', `date` = NOW(), `subject` = '$subject'") or die ('An error occured while sending message. Please try again.');
}
}
Thanks in advance,
Faifas