正常:
include('public/pages/' . ($pages) ? $pages->page : "errors/404" . '.php');
缩短:
if(){}else{}
为什么这种缩短的方式总是返回空,但正常的方法可以正常工作?
我可以只使用短case class AppKey(id: String, name: String, name1: String, name2: String) //whatever your case class is
val app1 = new AppKey("ID_A", "Site1", "app_AAA", "A_A_A_A")
val app2 = new AppKey("ID_B", "Site1", "app_BBB", "B_B_B_B")
val app3 = new AppKey("ID_C", "Site2", "app_CCC", "C_C_C_C")
val app4 = new AppKey("ID_D", "Site2", "app_DDD", "D_D_D_D")
List(app1, app2, app3, app4).groupBy(_.id).map {
case (id, lst) => (id, lst.find(_.id == id))
}
的回声或什么?感谢
答案 0 :(得分:3)
如果条件为真,则不会添加".php"
。
将其更改为:
include('public/pages/' . ($pages ? $pages->page : "errors/404") . '.php');
请注意我是如何添加第二对括号的。 “.php”现在被添加到三元返回的任何内容中,而不是直接添加到虚假表达式中。
如果没有正确的括号,您实际比较的是('public/pages/' . $pages)
并返回true:$pages->page
和false "errors/404" . '.php'
,这显然是错误的。