从学PHP到现在将近半年时间,今天在李炎恢老师的课程中看到一个这样的语句

classFactory{staticprivate$_action=null;staticpublicfunctionsetAction(){eval('self::$_action=new'.ucfirst(isset($_GET['a'])?$_GET['a']:'Index').'Action();');returnself::$_action;}}

第五行代码在课程中出现根本没有看懂,就百度查找了一些资料。

第五行代码属于三元运算符的应用。

该代码的含义检测new一个对象,对象是通过三元运算符判断得到。

$Get方法是否接收到东西,如果接收到,就new一个$_Get[]接收到的值,如果没有接收到,就new IndexAction();

举一个简单例子:

$a=1;$b=2;$c=3;$d=$a>$b?$b:$c;echo$d;

输出结果为3