Access Rule Roles Vs Expression


What is the use of having both roles and expression defined for an action ?

for example, i have the below code section…

// piSearchTaskAll

      array('allow', '[b]roles[/b]'=>array('piSearchTaskAll'),

          'actions'=>array('overview'), '[b]expression[/b]'=>'Yii::app()->user->checkAccess("piTaskUpdate") || Yii::app()->user->checkAccess("piTaskRead")'),

whats the use of expression in the above code ?

i normally use, roles in access rule to allow only the users who have that particular permission to access the action.

Thanks and any help is appreciated…

anyone there ?