就本章讲的内容而已,对两个构造函数表示非常不解
1、不明白为什么要在adminController的构造函数里进行跳转
假设是第一次访问,从PC::run进入,紧接着在 C() 函数里就会执行 new adminController,这时候构造函数就会被执行,此时当然还没有登录,然后就会触发跳转到登录页,但同时 C() 函数的第二个参数是要执行的方法,这个参数带什么好呢?如果带 GET 方式的 login,等于又触发一次打开 login.html,如果带 POST 方式的 login,此时用户都还没输入用户名密码呢,到哪来 POST 参数;
2、不明白为什么要在 authModel 的构造函数里对 $this->auth 赋值
觉得很多余,因为第一次创建 authModel 对象时,$_SESSION['auth'] 肯定还没值,只有执行过authModel::loginsubmit()方法后,它才有值,假设在此之后如果别的地方又要用到 authModel 了,new 了第二个对象,此时 $_SESSION['auth'] 有值了,也完全没必要赋给 $this->auth呀,以后不管是需要获取 auth 也好,还是判断是否已登录,直接从 $_SESSION['auth'] 里拿值就好啊,把值赋给 $this->auth ,再从$this->auth拿值岂不是很多余?
3、接问题2,在我的猜测里,只有一种可能会需要对$this->auth赋值,那就是 $_SESSION['auth'] 的值会变时才有必要。也就是 A 用户登录,new一个 authModel,将 $_SESSION['auth'] 赋值给 $this->auth,然后 B 用户又登录,又 new 了一个authModel,然后再把新的 $_SESSION['auth'] 赋值给新的authModel对象的 $this->auth。
当然,我对 php 的多线程机制很不了解,听说php是不支持多线程的,只有多进程模式,不知道是不是这种原因导致的才需要这么古怪的赋值方式,感觉和 C++、JAVA的面向对象完全不同。