1
0 Comments

9 Useful PHP Tips and Code Snippets That Get The Jobs Done

Hi friends, my name is Ricardo Sawir. Follow and subscribe if you like to get more updates on what I make:
My Newsletter https://subscribe.sawirstudio.com
Twitter https://twitter.com/RicardoSawir
Github https://github.com/sawirricardo
Youtube https://www.youtube.com/channel/UC5Db4Y8Sb2pc0LgitPSRTkQ
Gumroad https://gumroad.com/ricardosawir
(More to come…)
Okay, I think that’s enough 😁 I collect these tips and code snippets mostly from the awesome communities in StackOverflow. This code snippets and advice works but not limited from PHP 5 to PHP 8. I curate this myself and use it firstly for my job.
I don’t claim any of these code snippets or tips written here as mine. The credits goes to the respective authors. All of these tips and code snippets are collected by me that I see as “useful” for me and I hope you find them useful, too.
If you find any errors, probably a typo from me, please let me know at my email (you can find at the bottom).
So, let’s jump directly to our 1st tip!

  1. Use Prepared Statements if you are working with database to prevent SQL injection
    Source: https://stackoverflow.com/a/60496/9478774
$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name');
$stmt->execute([ 'name' => $name ]);
foreach ($stmt as $row) {
    // Do something with $row
}

This is to set up the connection, you can copy paste this:

$dbConnection = new PDO('mysql:dbname=dbtest;host=127.0.0.1;charset=utf8', 'user', 'password');
$dbConnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$preparedStatement = $db->prepare('INSERT INTO table (column) VALUES (:column)');
$preparedStatement->execute([ 'column' => $unsafeValue ]);
  1. Prepared Statements for dynamic queries? Restrict the possible values by using if else
    Source: https://stackoverflow.com/a/60496/9478774
if (empty($dir) || $dir !== 'DESC') {
   $dir = 'ASC';
}
// only 2 possible options
  1. Check if a string contains a specific word
    Source: https://stackoverflow.com/a/4366748/9478774
// [@ver](/ver) below 8
$a = 'How are you?';
if (strpos($a, 'are') !== false) {
    echo TRUE;
}
// [@ver](/ver) 8
if (str_contains('How are you', 'are')) {
    echo TRUE;
}
  1. Handle undefined index/offset with array_key_exists() or isset()
    Source: https://stackoverflow.com/a/4261200/9478774
//isset()
$value = isset($array['my_index']) ? $array['my_index'] : '';
//array_key_exists()
$value = array_key_exists('my_index', $array) ? $array['my_index'] : '';
  1. When you want to get the value of $_POST or $_GET or $_REQUEST, you can use isset() or !empty()
    Source: https://stackoverflow.com/a/4261200/9478774
$value = isset($_POST['value']) ? $_POST['value'] : '';
//empty()
$value = !empty($_POST['value']) ? $_POST['value'] : '';
//for PHP 7 and later
$value = $_POST['value'] ?? '';
  1. Display Error in PHP
    Source: https://stackoverflow.com/a/21429652/9478774
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
  1. Always remember require_once() 99,99%
    Compared to include(), require() function will handles errors differently, it will stop the script execution while include() will still continue the script despite the error.

  2. Helper functions if you want to redirect
    Source: https://stackoverflow.com/a/768472/9478774

function redirect($url, $statusCode = 303)
{
   header('Location: ' . $url, true, $statusCode);
   die();
}
  1. Return JSON with this script
    Source: https://stackoverflow.com/a/4064468/9478774
$data = /** whatever you're serializing **/;
header('Content-Type: application/json');
echo json_encode($data);

And.. there are 41 more points to go.

I hope you find this useful for your work. I hope the best for you!
if you want see the rest, you may want to buy while it still has black friday discount.

You can get 20% Off from $25! (Just $20)
https://gumroad.com/l/50phpcode/blackfriday

Also, if you have any feedback, please send to my email at [email protected]

I want to thank you again, you are the best!

Trending on Indie Hackers
Competing with Product Hunt: a month later 33 comments Why do you hate marketing? 29 comments My Top 20 Free Tools That I Use Everyday as an Indie Hacker 18 comments $15k revenues in <4 months as a solopreneur 14 comments Use Your Product 13 comments How I Launched FrontendEase 13 comments