avatarYunus Emre Adas

Summary

The article discusses seven lesser-known PHP functions that can significantly improve coding efficiency and security for PHP developers.

Abstract

The article "7 PHP Functions I Regret I Didn’t Know Before" by Yunus Emre Adaş highlights the importance of continuous learning in PHP development. It introduces experienced developers to seven powerful PHP functions that can streamline their coding processes. These functions include array_column() for extracting specific columns from multi-dimensional arrays, password_hash() for secure password handling, array_diff_key() for comparing associative arrays by keys, array_replace_recursive() for merging arrays with nested structures, stream_context_create() for handling data streams, fnmatch() for pattern matching without the complexity of regular expressions, and spl_autoload_register() for automating class inclusion. The author emphasizes that these functions not only make code cleaner and more efficient but also enhance security and performance, demonstrating that there is always more to learn in the field of programming.

Opinions

  • The author expresses regret for not having known these functions earlier, implying their significant impact on coding practices.
  • array_column() is praised for simplifying the extraction of data from multi-dimensional arrays, which is otherwise a tedious and error-prone task.
  • password_hash() is recommended over older hashing methods like md5() and sha1() due to its modern algorithms and automatic salting, which improve security against brute force attacks.
  • array_diff_key() is appreciated for its ability to easily spot differences in the keys of associative arrays, which can be particularly useful for debugging.
  • array_replace_recursive() is favored over array_merge_recursive() for its cleaner approach to merging arrays without creating redundancy.
  • stream_context_create() is highlighted as a lightweight and flexible alternative to cURL for making HTTP requests and handling file streams.
  • fnmatch() is presented as a convenient tool for pattern matching that avoids the overkill of using regular expressions for simple tasks.
  • The author advocates for the use of spl_autoload_register() to automate class inclusion, aligning with modern PHP practices and PSR standards.
  • The article concludes with an encouragement for developers to stay curious and keep learning, suggesting that the discovery of such functions can lead to better coding practices.

7 PHP Functions I Regret I Didn’t Know Before

Excellent php functions to code better

7 PHP Functions I Regret I Didn’t Know Before

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.

You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve optimum performance.

But from time to time, you will come across a function that makes you ask, ‘How come I did not know about this?’ Here are seven little-known PHP functions that I wish I had learned earlier.

1. array_column()

Usage of array_column()

Before I discovered array_column(), I used to manually loop through multi-dimensional arrays to extract out the specific columns. It is a boring process; one is bound to mess up somewhere.

This function takes out a single column of values from a multi-dimensional array, doing all the heavy lifting for you. It’s a real game-changer when dealing with database result sets and makes your code cleaner and more efficient.

2. password_hash()

Usage of password_hash()

Security is a very huge concern in web development, especially when dealing with user credentials.

I used to rely on md5() or sha1() for hashing passwords in the past, not even aware of how they could really be so vulnerable against the most common kind of attack — brute force.

Then came password_hash(); it doesn’t only handle salting automatically but also provides a safe and recommended way to hash passwords with modern algorithms.

3. array_diff_key()

Usage of array_diff_key()

Managing associative arrays can be a pain, and one of the things that pains me most is comparing two of them.

I have a function, mostly used for debug output, where I loop through two arrays and diff them. array_diff_key() makes this much easier.

It behaves much like array_diff(), but compares the keys rather than the values, quickly showing key differences that can be hard to spot when you’re just eyeballing two large arrays side by side, especially if the differences are multi-level deep. This is particularly useful in.

4. array_replace_recursive()

Usage of array_replace_recursive()

Very deeply nested arrays can sometimes make mergers grow to become a pain when dealing with the configuration files or some other complex data structure.

There is a place for array_merge_recursive(), but sometimes it merges the values in ways that you don’t want. array_replace_recursive() is a bit better in this matter, because it overrides the values.

Therefore, it fits perfectly when you need to replace an existing value within a nested array without creating redundancy in the entry.

5. stream_context_create()

Usage of stream_context_create()

This one really took me by surprise. I used to fall back on cURL in order to make HTTP requests, but stream_context_create() is a far easier, native way of going about it.

You can create your own context options for file streams, HTTP requests and many other things that come under stream operations without needing other extensions.

It’s lightweight and very flexible for the operations of handling different data streams — like API calls or complex file handling.

6. fnmatch()

Usage of fnmatch()

Pattern matching is a recurring chore in every developer’s life, where the use of regular expressions feels like overkill most of the time.

The fnmatch() function provides a more convenient way to match filenames or strings using wildcard matching.

This function is great for filtering files or even just doing quick string comparisons without the complexity of regular expressions.

7. spl_autoload_register()

Usage of spl_autoload_register()

Before learning about spl_autoload_register(), I would manually put a require or include statement for every class file.

The function helps in the automation of including classes, and indeed, it is possible to establish autoloaders for your classes quickly.

This function becomes very integral to how modern PHP treats autoloading, especially with the rise in PSR standards.

Wrapping Up

All the time there will be a function you are going to meet. The learning path has not have a end. You need to be curious about programming every day.

In this article I wanted to explain some of functions that you should know. I hope it’ll help you to code better.

Have a wonderful day!

Stay conected, Stay online.

Thanks for coming this far 🎉

You can reach me from the links below:

To access my other articles:

Programming
Web Development
PHP
Software Development
Write A Catalyst
Recommended from ReadMedium