Closures

http://php.net/closures

<?php
$data 
= array(3,2,8,5,6,1,7,4,9);
usort($data
             function(
$a,$b) { 
                 if(
$a%2==$b%2) return $a>$b;
                 return (
$a%2) ? : -1;
             }
     );
foreach(
$data as $v) echo "$v ";
Output
2 4 6 8 1 3 5 7 9