2011-02-22 96 views
-1

我是PHP新手,正试图编写一个简单的函数,它接受两个变量,如果变量相同则返回字符串“match”,如果不同,则返回“no_match”。再次新编程,所以提前谢谢!PHP函数返回匹配或不匹配

+3

我倾向于建议你看看[函数的基本PHP语法](http://www.php.net/manual/en/functio ns.user-defined.php)和手册中的其他章节。对SO提出问题很好,但知道基础知识将大大加速学习过程 – 2011-02-22 22:59:01

回答

1

你并不需要一个函数来做到这一点:

$result = ($var1 === $var2) ? "match" : "no_match"; 

但如果你坚持:

function matches($var1, $var2, $strict = false) { 
    return ($strict ? $var1 === $var2 : $var1 == $var2) ? "match" : "no_match" 
} 

用法:

$v1 = 1; 
$v2 = "1"; 

var_dump(matches($v1, $v2)); //match 
var_dump(matches($v1, $v2, true)); //no_match 

$v1 = "1"; 

var_dump(matches($v1, $v2, true)); //match 
0
/** 
* Compare two values for equality/equivalence 
* @param mixed 
* @param mixed 
* @param bool compare equivalence (types) instead of just equality 
* @return string indicating a match 
*/ 
function compare($one, $two, $strict = false) { 
    if ($strict) { 
     $compare = $one === $two; 
    } 
    else { 
     $compare = $one == $two; 
    } 
    if ($compare) { 
     return 'match'; 
    } 
    else { 
     return 'no_match'; 
    } 
} 
+0

太可读性。试试'return(($ strict)?$ one === $ two:$ one == $ two)? “匹配”:“不匹配”;'更多我以前在PHP中看到的内容。 ;-) – 2011-02-22 23:02:19

+0

太可读?不可读性是件好事吗?嵌套三元运营商是混乱和危险..我也选择离开了一个新的人,以免混淆他们。 – 2011-02-22 23:38:05