在func1中设置属性的值,在func2 PHP7中获取属性的值

时间:2019-09-22 12:44:38

标签: php class properties

我是php7的新手,并且正在使用MVC。 这是故事: 服务器通过Ajax向用户发送一个keyCode(方法A)。然后,用户通过表格将keyCode发送到(方法B)。我已将keyCode保存到方法A中名为$ beforCode的属性中。现在,我想检查方法B中用户向我发送的keyCode。但是问题是方法BI无法获得我拥有的属性keyCode的值保存在方法A中。keyCode属性为空。

这是我的代码:

class Payment extends Controller{

    public $keyCode = '';

    function setUserKeyCode(){ /// method A

        $code = $this->model->getKey();
        $this->keyCode = $code;

        /// echo $this->keyCode |  $this->keyCode equaled with $code
        echo $code; /// user get this by AJAX
    }


    function checkKeyCode(){ /// method B

         $userSentCode = $_POST['meKey']; /// user send this by Form
         $Key = $this->keyCode; /// echo $Key | $key = ''     <--- problem

         if ($clientCode == $key ) {
             echo 'user is valid';
         } 
         else {
             echo 'user is NON-valid';
         }
    }

}

*****如果有人可以通过其他方式申请此职位,请告诉我。 谢谢大家

1 个答案:

答案 0 :(得分:0)

这是因为ajax操作和用户的post操作不在同一个进程中,PHP对不同的请求使用了不同的进程。它不是同一个Payment对象,所以您无法获取密钥。

对于您的问题,我建议将键值保存到会话中。

session_start();
$_SESSION["code"]=$code;

并得到它:

session_start();
$code = $_SESSION["code"];