从学PHP到现在将近半年时间,今天在李炎恢老师的课程中看到一个这样的语句
class Factory {
static private $_action = null;
static public function setAction() {
eval('self::$_action = new '.ucfirst(isset($_GET['a']) ? $_GET['a'] : 'Index').'Action();');
return self::$_action;
}
}
第五行代码在课程中出现根本没有看懂,就百度查找了一些资料。
第五行代码属于三元运算符的应用。
该代码的含义检测new一个对象,对象是通过三元运算符判断得到。
$Get方法是否接收到东西,如果接收到,就new一个$_Get[]接收到的值,如果没有接收到,就new IndexAction();
举一个简单例子:
$a = 1;
$b = 2;
$c = 3;
$d = $a>$b ? $b : $c;
echo $d;
输出结果为3