如何从受保护的函数php返回字符串?

时间:2018-05-07 16:17:57

标签: php function class hash protected

我想 将索引文件中的字符串变量和变量操作传递给函数,我希望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;
        }


    }
}

任何人都可以帮我这个吗?请

3 个答案:

答案 0 :(得分:0)

更改...

self::Hash_1($STRINGX, $ACTION);

对此...

return $this->Hash_1($STRINGX, $ACTION);

您可能还希望将$output->Code_x更改为$um->Code_x,因为您不必在代码示例中的任何位置定义$output

答案 1 :(得分:0)

现在一切正常 即便如此,我也没有意识到 无论如何,括号之间的空间会产生“返回错误”,谢谢你们所有人 Devon,Coffee'd Up Hacker,Blue

答案 2 :(得分:0)

并且有一些方法可以使这部分功能从公共变为私有或受保护, public function Code_x($STRINGX, $ACTION)protected function Code_x($STRINGX, $ACTION)