自定义的方法名称可以和PDO自带方法名相同吗?

自定义的方法名可以和PDO已经存在的方法名相同吗?比如视频里面不是自定义了feach()方法吗,然而feach是PDO里面的默认方法啊

提问者谭勇源自课程:封装数据库操作类Db[PDO实现]提问时间:2017-10-12 19:26我来回答
1回答
寻觅 beyond
回复寻觅 beyond赞同01星期前

不知道那个视频是咋讲的,我就按我理解的说吧

自定义的方法名称可以和PDO自带的方法名称相同,首先你搞清楚作用域,如果你自己写的数据库类没有继承PDO类的话,他们两个类里面的成员属性和成员函数即使一模一样,那也是半点关系没有,调用的时候两个类的对象实例会分别调用自己类中的函数。

如果自定义的类继承PDO类,然后声明与PDO类同名的方法就属于重写了,注意fetch是PDOStatement对象的方法,所以即使继承得失PDO类,如果自定义了fetch,那么使用的是自己定义fetch方法,而不是PDOStatement对象的fetch;

还有一种情况是在自定义的类中new了一个PDO对象,包括上面一种情况,就有一个问题,PDO执行query或者execute()之后,返回的是PDOStatement的对象实例,如果在用这个返回的实例执行fetch方法,那就是执行的PDOStatement的fetch。

所以,我也不知道用文字咋说,你实际操作一下就知道了