为了账号安全,请及时绑定邮箱和手机立即绑定

返回NULL而不是字符串的抽象函数-PHP OOP

返回NULL而不是字符串的抽象函数-PHP OOP

PHP
慕后森 2021-03-30 09:15:32
我有这个可以处理session_start和session_regenerate_id运行的SessionService.php文件。我利用一个抽象类来生成一个新的会话ID,并将其存储在一个名为的变量中$new_session_id。然后,将该变量作为returnNewSessionID()类中包含的抽象函数的参数返回SessionRegenerateID。此抽象函数旨在返回变量$new_session_id。那就是问题所在。它不返回字符串(我们生成的新会话ID),而是返回NULL。在createNewID(),您会看到我正在将新生成的代码分配给名为的会话变量$_SESSION['new_session_id']。通过回显此会话变量,我从中获得了期望值。同时,从createNewID()函数中回显返回的值给了我NULL。该ID正在生成。问题很可能在于这些变量$new_session_id在这些函数中的使用方式。我需要弄清楚为什么抽象函数没有返回它。SessionService.phpinterface SessionRegenerateInterface {        public function createNewID();        (... other unrelated functions ...)}abstract class AbstractSessionRegenerate implements SessionRegenerateInterface {        public function createNewID() {            $new_session_id = session_create_id();            $_SESSION['new_session_id'] = $new_session_id;            $this->returnNewSessionID($new_session_id);        }        abstract protected function returnNewSessionID($newID);}class SessionRegenerateID extends AbstractSessionRegenerate {        protected function returnNewSessionID($newID) {            return $newID;        }}SessionController.php$RegenerateSession = new SessionRegenerateID;$newID = $RegenerateSession->createNewID();var_dump($newID);    // outputs NULLvar_dump($_SESSION['new_session_id']);    // outputs the generated session ID我有一个InputValidation类,在逻辑上与此类相同,除了它返回的值类型:TRUE或FALSE。有用。但是,现在我传递了一个带有字符串值的变量,它返回NULL。感谢您的帮助,以了解原因。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 164 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信