常見的5個PHP編碼小陋習以及優化例項講解

2022-09-25 22:51:16 字數 1722 閱讀 3259

在做過大量的**審查後,我經常看到一些重複的錯誤,以下是糾正這些錯誤的方法。

$items = ;

// ...

if (count($items) > 0)

}foreach 以及陣列函式 (array_*) 可以處理空陣列。

不需要先進行測試可減少一層縮排

$items = ;

// ...

foreach ($items as $item)

function 程式設計客棧foo(user $user)

}這不是 php 特有的情況,不過我經常碰到此類情況。你可以通過提前返回來減少縮排。

所有主要方法處於第乙個縮排級別

function foo(user $user)

// ...

// 其他**

// ...

}你可能遇到以下情況:

$a = null;

$b = null;

$c = null;

// ...

if (!isset($a) || !isset($b) || !isset($c))

// 或者

if (isset($a) && isset($b) && isset($c)

// 或者

$items = ;

//...

if (isset($items['user']) && isset($items['user']['id'])

我們經常需要檢查變數是否已定義,php 提供了 isset 函式可以用於檢測該變數,而且該函式可以一次接受多個引數,所以一下**可能更好:

$a = null;

$b = null;

$c = null;

// ...

if (!isset($a, $b, $c))

// 或者

if (isset($a, $b, $c))

// 或者

$items = ;

//...

if (isset($items['user'], $items['user']['id']))

$name = "john doe";

echo sprintf('bonjour %s', $name);

看到這程式設計客棧段**你可能會想笑,不過我的確這樣寫了一段時間,而且我仍然會看到很多這樣寫的!其實 echo 和 sprintf 並不需同時使用,printf 就可以完全實現列印功能。

$name = "john d程式設計客棧oe";

printf('bonjour %s', $name);

$items = [

'one_key' => 'john',

'search_key' => 'jane',

];if (in_array('search_key', array_keys($items)))

我經常看到的最後乙個錯誤是 in_array 和 array_keys 的聯bfebjiurac合使用。所有這些都可以使用array_key_exists替換。

$items = [

'one_key' => 'john',

'search_key' => 'jane',

];if (array_key_exists('search_key', $items))

我們還可以使用 isset 來檢查值是否不是 null。

if (isset($items['search_key']))

請糾正這5個PHP編碼小陋習

在做過大量的 審查後,我經常看到一些重複的錯誤,以下是糾正這些錯誤的方法。items if count items 0 foreach以及陣列函式 array 可以處理空陣列。items foreach items as item function foo user user 這不是 php 特有的...

JQuery基礎以及5個小案例

步驟分析 建立html文件 在頁面中建立乙個廣告部分的div,設定div隱藏 設定定時操作,1秒執行乙個顯示的方法 設定定時操作.1秒執行乙個隱藏方法 引入jq 步驟分析 引入jq的js 在頁面載入的函式中,選擇奇數行,新增樣式 在頁面載入的函式中,選擇偶數行,新增樣式 引入jq的js 步驟分析 引...

5個PyCaret的常見誤解

作者 moez ali 編譯 vk towards data science pycaret是python中的乙個開源 低 的機器學習庫,它自動化了機器學習工作流。它是乙個端到端的機器學習和模型管理工具,可以加快機器學習實驗的週期,並使你更有效率。與其他開放源 機器學習庫相比,pycaret是乙個低...