return 字符串如何来自受保护函数 php?
How return string from protected function php?
我愿意
将索引文件中的字符串变量和变量操作传递给函数,我希望 public 函数将这些变量传递给受保护的函数
根据动作提取编码的受保护函数
并将结果返回给 public 函数,然后返回到索引文件
我想做那样的事
但有些东西仍然没有消失。
谁能帮我这个?请
index.php
$um = new Code;
if($um->Code_x('xxxstringxxx', 'D')) {
echo$_SESSION['output'];
} else {
echo'something wrong';
}
echo $output->Code_x;
Code.class.php
class Code
{
protected $stringx;
protected $action;
public function Code_x($STRINGX, $ACTION)
{
$this->stringx = $STRINGX;
$this->action = $ACTION;
self::Hash_1($STRINGX, $ACTION);
}
protected function Hash_1( $stringx, $action )
{
$secret_key =
'xxxstring_secret_keyxxx'
;
$secret_iv =
'xxxstring_secret_ivxxx'
;
$output = false;
$encrypt_method = "AES-256-CBC";
$key = hash( 'sha512', $secret_key );
$iv = substr( hash( 'sha512', $secret_iv ), 64, 16 );
if( $action == 'E' ) {
$output = base64_encode( openssl_encrypt( $stringx, $encrypt_method, $key, 0, $iv ) );
return $output;
}
else if( $action == 'D' ){
$output = openssl_decrypt( base64_decode( $stringx ), $encrypt_method, $key, 0, $iv );
return $output;
}
}
}
谁能帮我解决这个问题?请
改变...
self::Hash_1($STRINGX, $ACTION);
为此...
return $this->Hash_1($STRINGX, $ACTION);
而且您可能还想将 $output->Code_x
更改为 $um->Code_x
,因为您没有在代码示例中的任何地方定义 $output
。
现在一切正常
我什至没有意识到
无论如何,括号之间的 space 将生成 "return false" 谢谢大家
Devon,Coffee'd Up Hacker,蓝色
并且有一些方法可以使这部分功能从 public 变为私有或受保护,
public function Code_x($STRINGX, $ACTION)
到
protected function Code_x($STRINGX, $ACTION)
我愿意 将索引文件中的字符串变量和变量操作传递给函数,我希望 public 函数将这些变量传递给受保护的函数 根据动作提取编码的受保护函数 并将结果返回给 public 函数,然后返回到索引文件 我想做那样的事 但有些东西仍然没有消失。 谁能帮我这个?请
index.php
$um = new Code;
if($um->Code_x('xxxstringxxx', 'D')) {
echo$_SESSION['output'];
} else {
echo'something wrong';
}
echo $output->Code_x;
Code.class.php
class Code
{
protected $stringx;
protected $action;
public function Code_x($STRINGX, $ACTION)
{
$this->stringx = $STRINGX;
$this->action = $ACTION;
self::Hash_1($STRINGX, $ACTION);
}
protected function Hash_1( $stringx, $action )
{
$secret_key =
'xxxstring_secret_keyxxx'
;
$secret_iv =
'xxxstring_secret_ivxxx'
;
$output = false;
$encrypt_method = "AES-256-CBC";
$key = hash( 'sha512', $secret_key );
$iv = substr( hash( 'sha512', $secret_iv ), 64, 16 );
if( $action == 'E' ) {
$output = base64_encode( openssl_encrypt( $stringx, $encrypt_method, $key, 0, $iv ) );
return $output;
}
else if( $action == 'D' ){
$output = openssl_decrypt( base64_decode( $stringx ), $encrypt_method, $key, 0, $iv );
return $output;
}
}
}
谁能帮我解决这个问题?请
改变...
self::Hash_1($STRINGX, $ACTION);
为此...
return $this->Hash_1($STRINGX, $ACTION);
而且您可能还想将 $output->Code_x
更改为 $um->Code_x
,因为您没有在代码示例中的任何地方定义 $output
。
现在一切正常 我什至没有意识到 无论如何,括号之间的 space 将生成 "return false" 谢谢大家 Devon,Coffee'd Up Hacker,蓝色
并且有一些方法可以使这部分功能从 public 变为私有或受保护,
public function Code_x($STRINGX, $ACTION)
到
protected function Code_x($STRINGX, $ACTION)