Check variable before use
<?php
$data['params'] = [1]; // or not declare
// Not Good
$result1 = isset($data['params']) && !empty($data['params']) ? $data['params'] : '';
var_dump($result1);
// Good practice
$result2 = @$data['params'] ? $data['params'] : '';
var_dump($result2);
==>
array(1) {
[0]=>
int(1)
}
array(1) {
[0]=>
int(1)
}
Ternary operator (toán tử 3 ngôi)
Not good
// Paginate
$limit = $request->get('limit');
if (!$limit) {
$limit = 10;
}
Good
// Paginate
$limit = $request->get('limit') ?: 10;
Check isset and not empty (Kiểm tra biến trước khi xài)
Not Good
$data['params'] = [4];
if(isset($data["params"]) && !empty($data["params"])) {
$result3 = $data["params"];
var_dump($result3);
}
Good
$data['params'] = [4];
if(@$data["params"]) {
$result4 = $data["params"];
var_dump($result4);
}
Redundant variable declaration (Khai báo biến dư thừa)
We have funtion
function query() {return null; // or anything};
Not good 1
$result=query();
if($result) {
var_dump('CheckExist1 in if: ', $result+1);
}
var_dump('CheckExist1 out if: ', $result);
Good 1
if($result=query()) {
var_dump('CheckExist2 in if: ', $result+1);
}
var_dump('CheckExist2 out if: ', $result);
Not good 2
function sumService() {
$a = 1;
$b = 2;
//Declare but not use
$result = $a + $b;
return $result;
}
Good 2
function sumService() {
$a = 1;
$b = 2;
return $a + $b;
}
Update