php异或算法?
/**
* PHP字符串“异或”算法
* param array key
* @param Request $request
* @return mixed|string|void
*/
public function setSecretKey(Request $request){
$keyArr = $request->input('key');
if(!is_array($keyArr) || empty($keyArr))
return;
foreach ($keyArr as $v){
if(empty($v) || (strlen($v) != 32)){
return;
}
}
if(count($keyArr) == 1)
return $keyArr[0];
$arrLength = count($keyArr);
$initKey = "00000000000000000000000000000000";
$initKeyArr = str_split($initKey);
for($i = 0;$i < $arrLength;$i++){
$newKey = '';
for($j = 0;$j < strlen($keyArr[$i]);$j++){
$str = '';
$tmpArr = str_split($keyArr[$i]);
$tmpA = str_pad(base_convert($tmpArr[$j],16,2),4,0,STR_PAD_LEFT);
$tmpB = str_pad(base_convert($initKeyArr[$j],16,2),4,0,STR_PAD_LEFT);
for($k=0;$k<strlen($tmpA);$k++){
$str .=(intval($tmpA[$k]) ^ intval($tmpB[$k]));
}
$tmpOneKey = strtoupper(base_convert($str,2,16));
unset($str);
$newKey .= $tmpOneKey;
}
unset($initKeyArr);
$initKeyArr = str_split($newKey);
}
return join($initKeyArr);
}
PHP中级工程师需要哪些条件?
具备独立分析、解决问题的能力。这里的问题涵盖:具体的技术问题、需求分析、解决方案、模块设计、数据库结构等。
简单说,你可以独立按照客户需求完成符合预定目标的整站开发。
或者换个说法,初级就是码农。从中级开始,技术问题已经不重要了,是思路、眼界、立场等看不见摸不着的东西,所以不存在什么资格问题。可以看看程序员之路专题文章哈,有的文章有不错的启发性
php中0,空,null和false的区别?
0 ,在所有计算机语言中,基本非0为真,0为假。0 == false null 是空 这个很有意思。因为我也不知它是什么类型的,但 null ==false是必然的。在if判断是逻辑就是这样 empty 这个也是很有意思是,因为这会出现很多陷阱。首先,empty对于一切未声明定义的变量,直接返回true,对于已声明的变量,如果是非空字符串 或 非0 返回false; 但是0的时候,它却是返回真的。这个是出于什么考虑我也不清楚。但它一直出乎我的逻辑。 总得关系就是 0==false ==null (empty是一个方法 ,所以不能跟变量作比较的。)

