I needed this today to make a lot of layers from a selection. Select objects and run this global script, and get layers for each selection. If the selection has children, they are added to the parents layer. See the comments for more info.
global proc mls_makeNamedLayer()
string $sel = `ls -sl`;
int $cnt = size($sel);
if($cnt < 1)
error "Select object(s) first.";
for($i=0; $i<$cnt; $i++)
select -r $sel[$i];
// use -nr flag to force only selected object
// be on the new display layer, otherwise add
// all the children, too.
createDisplayLayer -name ($sel[$i] + "_lyr") -number ($i+1);
Fatal error: Couldn't execute method C_Display_Type::__get in Unknown on line 0