0

関数が有効な結果を返すかどうかを最初に確認し、結果が有効な場合は、それをスクリプトで使用する必要があります。しかし、一度チェックしてから関数に戻ってその結果を得る代わりに、一度にすべてを行う方法はありますか? これは、$strVal後でクエリ文字列で使用する必要がある変数です。

$conn = connect();

encrypt('HIs#$%.-','x');
decrypt('6507A27EB0521AFA0776F1A4F8033041','x');

//If the function returns a valid result, 
if (encrypt('Tom','x'))
{
 echo 'Success'.$strVal;//I'll use this in a querystring later.

}
else
{
 echo 'An error occurred';
}

//Encrypt string
function encrypt($strToEncrypt,$salt)
{
    global $conn;
    $elements = $conn->prepare("select hex(aes_encrypt(:what,:salt)) as encValue");
    $elements->bindParam(':what', $strToEncrypt);
    $elements->bindParam(':salt', $salt);
    $elements->execute();
    $row = $elements->fetch();
    $strVal = $row['encValue'];
    if(is_null($strVal)){return false;}else{return $strVal;}
}

//Decrypt string
function decrypt($strToDecrypt,$salt)
{
    global $conn;
    $elements = $conn->prepare("select aes_decrypt(unhex(:what),:salt) as decValue");
    $elements->bindParam(':what', $strToDecrypt);
    $elements->bindParam(':salt', $salt);
    $elements->execute();
    $row = $elements->fetch();

    if(is_null($row['decValue']))
    {echo "Null";}else{echo $row['decValue'];}
}
4

1 に答える 1

2

はい、条件内で変数の割り当てを行うことができます。

/* single 'equal' operator intended */
if( $strVal = encrypt( 'Tom', 'x' ) )
{
    echo 'Success' . $strVal;
}
于 2013-05-08T08:42:19.330 に答える