我想覆盖一下mysql_num_rows,让我们说下面的话:
$dataset = array(array('id' => 1, 'name' => 'Zlatan', 'onSOF' => 1), array('id' => 1, 'name' => 'Guest', 'onSOF' => 0));
function mysql_num_rows($dataset) {
return sizeof($dataset);
}
Run Code Online (Sandbox Code Playgroud)
PHP是否支持内置函数覆盖?
扩展
我想创建一个OpenSource解决方案,它将覆盖所有现有的mysql_*函数,它的函数体我将使用PDO实例和方法以及属性.
这意味着已经使用mysql_*并且难以完全移动到PDO的用户应该只包含此函数覆盖,并且所有属性,函数调用,函数返回值,参数值等应该保持不变.
Ron*_*den 14
我认为可以这样做:
//First rename existing function
rename_function('strlen', 'new_strlen');
//Override function with another
override_function('strlen', '$string', 'return override_strlen($string);');
//Create the other function
function override_strlen($string){
return new_strlen($string);
}
Run Code Online (Sandbox Code Playgroud)
请注意,每个主机必须在服务器上安装http://php.net/manual/en/book.apd.php.
另一种方法是使用命名空间
<?php
namespace mysql2pdo;
use PDO;
function mysql_connect() {
return new PDO();
}
echo mysql_connect(); // Causes error because we don't have the parameters
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14563 次 |
| 最近记录: |