當前位置: 首頁> 最新文章列表> 結合ceil() 與Laravel、ThinkPHP 等框架的實際案例分析

結合ceil() 與Laravel、ThinkPHP 等框架的實際案例分析

M66 2025-06-02

在PHP開發中, ceil()函數是一個非常實用的數學函數,用於對浮點數向上取整。在實際開發中,無論是Laravel還是ThinkPHP這兩大主流框架, ceil()都能為我們解決諸如分頁計算、價格取整、庫存管理等場景提供便捷的支持。本文將詳細介紹如何在這兩個框架中結合使用ceil()函數,並給出實際應用的示例。


一、PHP的ceil()函數簡介

ceil()函數用於將一個數字向上取整,返回大於或等於該數字的最小整數。它的語法如下:

 ceil(float $value): float

例如:

 echo ceil(3.2); // 輸出4
echo ceil(-1.1); // 輸出-1

二、在Laravel框架中使用ceil()

Laravel作為一個現代化的PHP框架,提供了豐富的工具和便捷的語法。在實際項目中,常見的ceil()使用場景是分頁總頁數的計算。

假設我們有一個數據庫查詢返回了總記錄數,我們需要計算分頁總頁數:

 <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Product;

class ProductController extends Controller
{
    public function index(Request $request)
    {
        $perPage = 15; // 每頁顯示15條數據
        $total = Product::count(); // 獲取產品總數

        $totalPages = ceil($total / $perPage); // 計算總頁數

        return view('products.index', compact('totalPages'));
    }
}

在Blade模板中,你可以根據$totalPages生成分頁鏈接。

此外,如果在處理價格時需要向上取整,也可以直接使用ceil()

 $price = 19.99;
$priceRounded = ceil($price); // 20

三、在ThinkPHP框架中使用ceil()

ThinkPHP同樣支持原生PHP函數,使用ceil()也非常直觀。以下示例展示了在控制器中分頁總頁數的計算:

 <?php
namespace app\index\controller;

use think\Controller;
use think\Db;

class Product extends Controller
{
    public function index()
    {
        $perPage = 20; // 每頁條數
        $total = Db::name('product')->count(); // 獲取商品總數

        $totalPages = ceil($total / $perPage); // 計算頁數

        $this->assign('totalPages', $totalPages);
        return $this->fetch();
    }
}

在模板文件中,可以通過{$totalPages}來使用。


四、結合實際應用:示例場景

1. 商品價格統一向上取整

假設某電商系統中,商品價格需要統一向上取整展示。無論價格是多少,前端顯示必須是整數。

 <?php
$prices = [12.1, 15.9, 22.3, 18.75];
$roundedPrices = array_map('ceil', $prices);
print_r($roundedPrices); // 輸出:[13, 16, 23, 19]

2. 分頁總頁數計算

結合URL參數動態分頁計算:

Laravel中:

 <?php
$page = request()->get('page', 1);
$perPage = 10;
$total = Product::count();
$totalPages = ceil($total / $perPage);
$url = "https://m66.net/products?page=" . $page;

return view('products.index', compact('totalPages', 'page', 'url'));

ThinkPHP中:

 <?php
$page = input('get.page', 1);
$perPage = 10;
$total = Db::name('product')->count();
$totalPages = ceil($total / $perPage);
$url = "https://m66.net/products?page=" . $page;

$this->assign(compact('totalPages', 'page', 'url'));
return $this->fetch();

五、總結

PHP的ceil()函數在Laravel和ThinkPHP框架中的使用非常直接且高效,特別是在分頁計算和價格處理上。通過將其結合框架的數據庫操作和視圖展示,可以極大地提升開發效率和代碼簡潔度。

無論是Laravel的優雅語法,還是ThinkPHP的靈活輕量, ceil()都能很好地滿足實際項目需求。