PHP 中的相同字符串在使用按位函数时回显到屏幕时给出 2 个不同的输出
Same string in PHP giving 2 different outputs when echoed to screen when using bitwise functions
目前,我正在 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#
是包含一堆字符的字符串,这些字符在两次尝试中都保持不变。输出是:
$t
Le7KXh}*J;GKUqzo9
$test
9223372036854775807
我想知道为什么我在第二个例子中只得到数字
由于变量 h1
到 h5
是在函数范围之外定义的,因此它们被解释为字符串而不是它们的值。
尝试将以下字符串添加到您的函数中:
global $h1, $h2, $h3, $h4, $h5;
它应该可以工作。
查看此代码以供参考:http://sandbox.onlinephpfunctions.com/code/a801c15422b69cc2d7ba067e70a5077abe03c1a9
目前,我正在 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#
是包含一堆字符的字符串,这些字符在两次尝试中都保持不变。输出是:
$t
Le7KXh}*J;GKUqzo9
$test
9223372036854775807
我想知道为什么我在第二个例子中只得到数字
由于变量 h1
到 h5
是在函数范围之外定义的,因此它们被解释为字符串而不是它们的值。
尝试将以下字符串添加到您的函数中:
global $h1, $h2, $h3, $h4, $h5;
它应该可以工作。 查看此代码以供参考:http://sandbox.onlinephpfunctions.com/code/a801c15422b69cc2d7ba067e70a5077abe03c1a9