Php 如果函数是在 class 之外调用的
Php if function was called outside of class
我正在为网络平台制作 SDK,有一个客户端 class 需要 cookie 进行授权,并且有一个函数可以从 cookie 获取身份验证令牌。所以我的问题是:如何检查函数是否在 class 之外被调用。我需要这个,因为我想用密码保护这个功能,如果 class 调用它,它可以在没有密码的情况下工作。
这是我的代码:
public function gettoken(?string password = ""): string{
//check if it's called inside of class
if (fromClass() == true){
//code that gets token
}
//if it's called outside of class
if ($password == $this->password){
//code that gets token
}
return "Incorrect password";
}
这听起来很像个坏主意。
为什么不创建两个函数:一个 public 需要密码,另一个不需要密码。 public函数当然可以在验证密码后调用私有函数
像这样:
public function getTokenUsingPassword($password)
{
if ($password == $this->password) {
return $this->getToken();
}
return false;
}
private function getToken()
{
return //code that gets token
}
我正在为网络平台制作 SDK,有一个客户端 class 需要 cookie 进行授权,并且有一个函数可以从 cookie 获取身份验证令牌。所以我的问题是:如何检查函数是否在 class 之外被调用。我需要这个,因为我想用密码保护这个功能,如果 class 调用它,它可以在没有密码的情况下工作。 这是我的代码:
public function gettoken(?string password = ""): string{
//check if it's called inside of class
if (fromClass() == true){
//code that gets token
}
//if it's called outside of class
if ($password == $this->password){
//code that gets token
}
return "Incorrect password";
}
这听起来很像个坏主意。
为什么不创建两个函数:一个 public 需要密码,另一个不需要密码。 public函数当然可以在验证密码后调用私有函数
像这样:
public function getTokenUsingPassword($password)
{
if ($password == $this->password) {
return $this->getToken();
}
return false;
}
private function getToken()
{
return //code that gets token
}