我真的只是对此感到好奇,我不打算实施它,但我确实认为如果出现适当的条件,这将是一个很酷的控制结构。
我有一个布尔数组,代表用户试图查看的数据类型,然后我有一个布尔对象,表示用户是否有权查看该数据。
而不是 if 语句的列表说if(permission and display){show this type}
,我想我会改为只使用 switch(true) 并实际编写相同数量的代码但格式更好一点,如果我能得到一个 switch 语句到continue;
.. 那本来是凉爽的。
switch(true){
case ($processPermissions->history->view) && ($display['history'] !== false):
$application['history'] = $this->getHistory();
continue;
case ($processPermissions->notepad->view) && ($display['notepad'] !== false):
$application['notepad'] = $this->notepad('get');
continue;
case ($processPermissions->documents->view) && ($display['documents'] !== false):
$application['documents'] = $this->documents('get');
continue;
case ($processPermissions->accounting->view) && ($display['accounting'] !== false):
$application['accounting'] = $this->accounting('get');
continue;
case ($processPermissions->inspections->view) && ($display['inspections'] !== false):
$application['inspections'] = $this->inspections('get');
continue;
case ($processPermissions->approvals->view) && ($display['approvals'] !== false):
$application['approvals'] = $this->approvals('get');
continue;
}
实际上,我只是要创建一个数组并循环遍历它,因为每种情况下的代码都是相同的。
..但我很好奇如果我愿意的话,我将如何让它发挥作用。