在R操作符中,也可以表示为函数调用,例如
<?php
require_once("db.php");
function check_input($r){
$r=trim($r);
$r=strip_tags($r);
$r=stripslashes($r);
return $r;
}
function get_salt($uid){
$db=get_db();
$stmt=$db->prepare("SELECT salt FROM login_details WHERE emp_id=?");
$stmt->execute(array($uid));
$r=$stmt->fetch(PDO::FETCH_ASSOC);
return $r['salt'];
}
if (isset($_POST['uname'],$_POST['pwd'])){
$u=check_input($_POST['uname']);
$p=check_input($_POST['pwd']);
$saltedpassword=md5(get_salt($uid).$p);
try{
$db=get_db();
$stmt=$db->prepare("SELECT * FROM login_details WHERE emp_id=? && password=?");
$stmt->execute(array($u,$saltedpassword));
$r=$stmt->fetch(PDO::FETCH_ASSOC);
if($r){
if($r['status']=='1'){
session_start();
$access_level=$r['access_level'];
$_SESSION['emp_id']=$r['emp_id'];
$_SESSION['access_level']=$access_level;
if ($access_level==0){
header("Location:emppages/");
}
if($access_level==1){
header("Location:hrpages/");
}
if($access_level==2){
header("Location:adpages/");
}
}else{
header("Location:index.php?err=1");
}
}
}catch(PDOException $e){
die("Database error: ".$e->getMessage());
}
}else{
header("Location:index.php");
}
?>
'<-'(b, 12)
。
为什么以下给出错误:
b <- 12
? (代码'->'(12, b)
正常工作。)
答案 0 :(得分:17)
因为解析器将运算符“转换”为函数,并且左右分配都解析为<-
函数。没有权限分配功能。
e <- quote(b <- 12)
as.list(e)
#[[1]]
#`<-`
#
#[[2]]
#b
#
#[[3]]
#[1] 12
e <- quote(12 -> b)
as.list(e)
#[[1]]
#`<-`
#
#[[2]]
#b
#
#[[3]]
#[1] 12