-1

目前,我正在使用 PHP 中的 XOR 位函数,并试图确定我没有得到预期输出的原因。我对这些值进行了硬编码,发现在调用包含回显的函数时,我的字符串中只得到数字。但是,如果我回显一个包含相同数据的变量,我会得到预期的输出。

<?php
    include "bitwise.php";
    echo $t . "<br>";
    temp("1234");   
?>

我从上面的代码中调用下面的代码。

$t = (((((("1324" ^ $h1) . "1234") ^ $h2) . ("1324" ^ $h1)) ^ $h3) . ((("1324" ^ $h1) . "1234") ^ $h2) ^ $h5);

function temp($str)
{
    $test = (((((("1324" ^ $h1) . "1234") ^ $h2) . ("1324" ^ $h1)) ^ $h3) . ((("1324" ^ $h1) . "1234") ^ $h2) ^ $h5);
    echo $test;

    return $test;
}

$h#are 字符串包含一堆字符,这些字符在两次尝试中都保持不变。输出是:

$t
Le7KXh}*J;GKUqzo9

$test
9223372036854775807

我想知道为什么我在第二个例子中只得到数字

4

1 回答 1

-1

由于要在函数范围之外定义变量h1h5因此它们被解释为字符串而不是它们的值。

尝试将以下字符串添加到您的函数中:

global $h1, $h2, $h3, $h4, $h5;

它应该工作。查看此代码以供参考:http ://sandbox.onlinephpfunctions.com/code/a801c15422b69cc2d7ba067e70a5077abe03c1a9

于 2017-01-25T17:50:41.887 回答