为什么这个更短包括如果返回空,但正常不

时间:2018-03-19 12:03:50

标签: php

正常:

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)) } 的回声或什么?感谢

1 个答案:

答案 0 :(得分:3)

如果条件为真,则不会添加".php"

将其更改为:

include('public/pages/' . ($pages ? $pages->page : "errors/404") . '.php');

请注意我是如何添加第二对括号的。 “.php”现在被添加到三元返回的任何内容中,而不是直接添加到虚假表达式中。

如果没有正确的括号,您实际比较的是('public/pages/' . $pages)并返回true:$pages->page和false "errors/404" . '.php',这显然是错误的。