[英]Usort with deprecated create_function
我的案件與其他案件相似,嘗試了他們的建議,但對我沒有用。
usort($file, create_function('$a,$b', 'return filemtime($a)<filemtime($b);'));
該代碼代表我們的客戶儀表板中的pdf顯示(隨機pdf顯示),以便他們下載。 但是,我試圖將它們轉換為本機函數,但pdf顯示僅顯示了上載pdf文件的末尾。
usort($file, function($a, $b) {
return filemtime($a) < filemtime($b);
} );
這是上面的代碼,我試圖將create_function
更改為function()
但它不會更改顯示。
我沒有此代碼。 它已分配給我修復。
更新:如果您需要完整的代碼,就在這里。
if($newDIR != "" && is_dir($newDIR)) {
$file = File::allFiles($newDIR);
usort($file, create_function('$a,$b', 'return filemtime($a)<filemtime($b);'));
foreach($file as $files) {
$fileInfo = pathinfo($files);
$name = $fileInfo['filename'];
$size = File::size($files);
$datemodiy = File::lastModified($files);
$size = $size/1048576;
$fileLink = str_replace('\\', '/', $fileInfo['dirname']).'/'.$fileInfo['basename'];
$folderLink= str_replace('documents/','',$mainDIR);
$date2 = date('Y-m-d',$datemodiy);
$dateno = date('Y-m-d');
$intervalDate = (int)abs((strtotime($dateno) - strtotime($date2))/(60*60*24*30));
if($intervalDate <= 2) {
$fileDir[] = array('link'=>$fileLink,'name'=>$name,'size'=>$size,'datemodiy'=>$datemodiy,'folderLink'=>$folderLink);
}
} // end for each
} // if $dir
更新:
上面我用來替換舊的create_function
的代碼還可以...並且工作正常。 我之所以持懷疑態度,是因為我一次下載了所有文件,而不是每個不同文件手動下載一個文件。 我現在看到每個pdf顯示隨機文件。
為什么不能使用閉包
usort($file, function($a, $b){
return filemtime($a)<filemtime($b);
});
或是,函數create_function,但是在這種情況下,您可以在助手中創建一個函數並使它起作用,該函數的定義將類似於
$str = '$a,$b';
$code = "return filemtime($a)<filemtime($b);";
var_dump(createFunction($str, $code));
function createFunction($str, $code) {
$code;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.