這些問題在面試的時候可千萬不能犯!!!php
$items = []; // ... if (count($items) > 0) { foreach ($items as $item) { // process on $item ... } }
foreach 以及數組函數 (array_*) 能夠處理空數組。laravel
不須要先進行測試面試
可減小一層縮進sql
$items = []; // ... foreach ($items as $item) { // process on $item ... }
function foo(User $user) { if (!$user->isDisabled()) { // ... // long process // ... } }
這不是 PHP 特有的狀況,不過我常常碰到此類狀況。你能夠經過提早返回來減小縮進。shell
全部主要方法處於第一個縮進級別數組
function foo(User $user) { if ($user->isDisabled()) { return; } // ... // 其餘代碼 // ... }
你可能遇到如下狀況:服務器
$a = null; $b = null; $c = null; // ... if (!isset($a) || !isset($b) || !isset($c)) { throw new Exception("undefined variable"); } // 或者 if (isset($a) && isset($b) && isset($c) { // process with $a, $b et $c } // 或者 $items = []; //... if (isset($items['user']) && isset($items['user']['id']) { // process with $items['user']['id'] }
咱們常常須要檢查變量是否已定義,php 提供了 isset 函數能夠用於檢測該變量,並且該函數能夠一次接受多個參數,因此一下代碼可能更好:架構
$a = null; $b = null; $c = null; // ... if (!isset($a, $b, $c)) { throw new Exception("undefined variable"); } // 或者 if (isset($a, $b, $c)) { // process with $a, $b et $c } // 或者 $items = []; //... if (isset($items['user'], $items['user']['id'])) { // process with $items['user']['id'] }
$name = "John Doe"; echo sprintf('Bonjour %s', $name);
這段代碼可能在微笑,可是我碰巧寫了一段時間。並且我仍然看到不少!不用結合echo和sprintf,咱們能夠簡單地使用printf方法。併發
$name = "John Doe"; printf('Bonjour %s', $name);
$items = [ 'one_key' => 'John', 'search_key' => 'Jane', ]; if (in_array('search_key', array_keys($items))) { // process }
我常常看到的最後一個錯誤是in_array和array_keys的聯合使用。全部這些均可以使用array_key_exists替換。分佈式
$items = [ 'one_key' => 'John', 'search_key' => 'Jane', ]; if (array_key_exists('search_key', $items)) { // process }
咱們還能夠使用isset來檢查值是否不是null。
if (isset($items['search_key'])) { // process }
好了各位,以上就是這篇文章的所有內容了,能看到這裏的人呀,都是人才。以前說過,PHP方面的技術點不少,也是由於太多了,實在是寫不過來,寫過來了你們也不會看的太多,因此我這裏把它整理成了PDF和文檔,若是有須要的能夠
更多學習內容能夠訪問【對標大廠】精品PHP架構師教程目錄大全,只要你能看完保證薪資上升一個臺階(持續更新)
以上內容但願幫助到你們,不少PHPer在進階的時候總會遇到一些問題和瓶頸,業務代碼寫多了沒有方向感,不知道該從那裏入手去提高,對此我整理了一些資料,包括但不限於:分佈式架構、高可擴展、高性能、高併發、服務器性能調優、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優化、shell腳本、Docker、微服務、Nginx等多個知識點高級進階乾貨須要的能夠免費分享給你們,須要的能夠加入個人 PHP技術交流羣