84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
自定义的方法名可以和PDO已经存在的方法名相同吗?比如视频里面不是自定义了feach()方法吗,然而feach是PDO里面的默认方法啊
不知道那个视频是咋讲的,我就按我理解的说吧
自定义的方法名称可以和PDO自带的方法名称相同,首先你搞清楚作用域,如果你自己写的数据库类没有继承PDO类的话,他们两个类里面的成员属性和成员函数即使一模一样,那也是半点关系没有,调用的时候两个类的对象实例会分别调用自己类中的函数。
如果自定义的类继承PDO类,然后声明与PDO类同名的方法就属于重写了,注意fetch是PDOStatement对象的方法,所以即使继承得失PDO类,如果自定义了fetch,那么使用的是自己定义fetch方法,而不是PDOStatement对象的fetch;
还有一种情况是在自定义的类中new了一个PDO对象,包括上面一种情况,就有一个问题,PDO执行query或者execute()之后,返回的是PDOStatement的对象实例,如果在用这个返回的实例执行fetch方法,那就是执行的PDOStatement的fetch。
所以,我也不知道用文字咋说,你实际操作一下就知道了
不知道那个视频是咋讲的,我就按我理解的说吧
自定义的方法名称可以和PDO自带的方法名称相同,首先你搞清楚作用域,如果你自己写的数据库类没有继承PDO类的话,他们两个类里面的成员属性和成员函数即使一模一样,那也是半点关系没有,调用的时候两个类的对象实例会分别调用自己类中的函数。
如果自定义的类继承PDO类,然后声明与PDO类同名的方法就属于重写了,注意fetch是PDOStatement对象的方法,所以即使继承得失PDO类,如果自定义了fetch,那么使用的是自己定义fetch方法,而不是PDOStatement对象的fetch;
还有一种情况是在自定义的类中new了一个PDO对象,包括上面一种情况,就有一个问题,PDO执行query或者execute()之后,返回的是PDOStatement的对象实例,如果在用这个返回的实例执行fetch方法,那就是执行的PDOStatement的fetch。
所以,我也不知道用文字咋说,你实际操作一下就知道了