mysql扩展函数接受可选的link参数,如果没有指定,则使用mysql_connect调用的最后一个返回值。我想在更高级别的函数中使用相同的行为,但不知道如何实现它。下面是我不想使用的丑陋的例子,绝对:
function get_mysql_info($linkid = null){
$linkid ? $strInfo = mysql_info($linkid) : $strInfo = mysql_info();
// followed by multiple tortures by ereg calls even!
我看到可能(或可能不)的两种可能方式:
这两种变体都没有成功,请指教,谢谢!
请原谅重复,这是伪代码试图进一步解释我想要的东西:
function mysql_wrap ( $optional_link_identifier ) {
mysql_this( $optional_link_identifier ); // use specified link or default (as described above)
mysql_that( $mandatory_parameter, $optional_link_identifier ); // use specified link or default
// so on
}
...而不是在存在/不存在可选参数时进行分支:
function mysql_wrap ( $optional_link_identifier = NULL ) {
if ( $optional_link_identifier )
mysql_this( $optional_link_identifier ); // use specified link
else mysql_this(); // or default
if ( $optional_link_identifier )
mysql_that( $mandatory_parameter, $optional_link_identifier ); // use specified link
else mysql_that(); // or default
// so on. as you see, generalizing the code in the function actually made things even worse
}
所以,我正在寻求普遍处理这两种情况的方法。
答案 0 :(得分:-1)
mysql_ *函数已经过了一天。
使用PDO,您将获得完全OOP接口,该接口在很大程度上与所使用的DB服务器类型无关。