最近在搞一个CMS的二次开发,多次在脚本中看到这样的脚本$_POST[loginname] && $_POST[loginname]=filtrate($_POST[loginname]);
$_POST[loginpwd] && $_POST[loginpwd]=filtrate($_POST[loginpwd]);谁能说说这个呢?怎么理解呢?
$_POST[loginpwd] && $_POST[loginpwd]=filtrate($_POST[loginpwd]);谁能说说这个呢?怎么理解呢?
filtrate() 好像不是php的内置函数把。
$_POST[loginname] && $_POST[loginname]=filtrate($_POST[loginname]);
可以是做这样的事情:
如果$_POST[loginname]存在,那么会把$_POST[loginname]的值通过filtrate()函数处理下。
<?php
$a = false;
$b = 1;
$a && $b = 3;
echo $b;输出是1
$a && $b = 3;//等价于这样:
/**if($a)
{
$b=3;
}*/
//Re brad at bradleyproctor dot comif ($foo) {
$foo = 5;
}//Can't be replaced with
$foo or $foo = 5;//But it can be replaced with
$foo and $foo = 5;
我想听听这个短路到底是怎么回事
if( $_POST[loginname] )
{
_POST[loginname]=filtrate($_POST[loginname])
}//1我个人鄙视这种写法,很反感在这种无聊的事上去耗掉过多的事.万一那哪天,碰到一个右序优先的解释器,是不是代码全重写一遍.
//2 既然这样写了,干脆再加点东西.
isset($_POST[loginname]) && $_POST[loginname] && $_POST[loginname]=filtrate($_POST[loginname]);