这些问题在面试的时候可千万不能犯!!!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技术交流群