The pitfalls I encountered when using php7 in those years
Although PHP has become "the best programming language in the world", some of its features still caused us some unknown troubles during the development process. Below are some of the pitfalls that I have encountered during the development process. I hope that all viewers can learn from them and avoid the pitfalls.
1. Don’t use the mysql_ function
The day has finally come. From now on, you not only "shouldn't" use the mysql_ function. PHP 7 has removed them all from the core, which means you need to migrate to the much better mysqli_ function, or the more flexible PDO implementation.
2. Don’t write junk code
This one may be easy to understand, but it will become increasingly important because the speed increase of PHP 7 may hide your some problems. Don't just settle for your site speed because migrating to PHP 7 made it faster.
As a developer, you should always make sure to load scripts on demand, connect to them when possible, write efficient database queries, use caching when possible, and more.
3. Don’t use PHP closing tags at the end of the file
You can take a look, when a file ends with PHP code, most of the WordPress core code ends with The PHP tag has been removed. In fact, the Zend Framework specifically disables it. PHP does not require a closing tag at the end of the file, and we can ensure that no whitespace characters are added at the end by removing it.
4. Don’t do unnecessary reference passing
I personally don’t like reference passing. I know that sometimes it's useful, but other times it makes the code difficult to understand and the results harder to predict.
It is said that some people think it makes the code run faster, but according to some senior PHP programmers, this is not true.
An example of why quoting is bad is that PHP has built-in shuffle() and sort(). They modify the original array instead of returning the processed array, which is quite illogical.
5. Execute queries in a loop
Executing queries in a loop is very wasteful. It puts unnecessary stress on your system and may be able to achieve the same results faster outside the loop. When I encounter a situation where I need something like this, I usually solve the problem with two separate queries that I use to build the data array. I'll then iterate over the array and not need to perform a query in the process.
Since WordPress is used here, it may have some exceptions. Although get_post_meta() will get a lot of data from the database, you can use it in a loop if you are looping through the metadata of a particular blog post. This is because WordPress actually gets all the metadata and caches it when you first call it. Subsequent calls use this cached data without making database calls.
The best way to understand this is to read the function documentation and use a tool like Query Monitor.
6. Don’t use *
Of course, this is more like a MySQL problem, but we are used to writing SQL code in PHP, so it’s the same. Regardless, don't use wildcards in SQL queries if you can avoid it, especially if the database has many columns.
You should explicitly specify which rows are required and only get them. This helps reduce resources used, protect data, and make things as clear as possible.
For SQL, you need to know all the available functions and test their speed as much as possible. When calculating means, sums, or similar numerical calculations, use SQL functions instead of PHP functions. If you're not sure about the speed of a certain query, test it and try some other compilations - then use the best one.
7. Don’t trust user input
It is unwise to trust user input. Always validate, filter, escape, check, and leave a way out. There are three problems with user data: we developers don't consider every possibility, it's often incorrect, and it could be deliberately compromised.
Though-thought-out systems can protect against these threats. Be sure to check for appropriate values using built-in functions like filter_var(), and escape (or precompile) when dealing with the database.
WordPress has some functions to solve the problem. See the article Validating, escaping, and filtering user data for details.
8. Don’t try to be smart
Your goal should be to write elegant code that expresses your intentions more clearly. You might be able to optimize 0.01 seconds out of each page by shortening everything to a one-word variable, using multiple layers of ternary logic, and other means. But this will only create big problems for you and those around you.
Name variables appropriately, document your code, and prioritize clarity over brevity. It's even better to use standard object-oriented code, which is more or less the document itself, without the need for a bunch of inline values.
9. Don’t reinvent the wheel
PHP has been around for a long time, and websites have been created for even longer. Chances are, whatever you need to build, someone has already built it before. Don’t be afraid to ask for support from others, Github is your friend, so is Composer, and so is Packagist.
From logging tools to color correction tools, from performance analyzers to unit testing frameworks, from Mailchimp API to Twitter Bootstrap, everything is available at the press of a key (or typing a command), use them!
10. Don’t ignore other languages
If you are a PHP programmer, when you can better understand HTML, CSS, JavaScript and MySQL. It’s time to learn JavaScript again. JavaScript is not jQuery, and you should learn JavaScript properly to use it more efficiently.
There is also object-oriented PHP, which saves time and gets better when the code size is larger. For languages like C# and Java, they are also easier to understand after you understand OOP.
Expand your knowledge by learning about package managers, build scripts, CoffeeScript, LESS, SASS, YAML, scripting engines, and other powerful tools. I highly recommend you to take a look at other frameworks, especially Laravel.
How about learning Ruby, RoR, Android, iPhone and Windows Phone app development while you use them to get things done brilliantly? You might think this is pointless because they are outside of your comfort zone and what the job requires, but that’s what they are. Every language has some practical things to learn, as well as new things you've never encountered before.
The above is the detailed content of The pitfalls I encountered when using php7 in those years. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

To resolve the plugin not showing installed issue in PHP 7.0: Check the plugin configuration and enable the plugin. Restart PHP to apply configuration changes. Check the plugin file permissions to make sure they are correct. Install missing dependencies to ensure the plugin functions properly. If all other steps fail, rebuild PHP. Other possible causes include incompatible plugin versions, loading the wrong version, or PHP configuration issues.

How to install the mongo extension in php7.0: 1. Create the mongodb user group and user; 2. Download the mongodb source code package and place the source code package in the "/usr/local/src/" directory; 3. Enter "src/" directory; 4. Unzip the source code package; 5. Create the mongodb file directory; 6. Copy the files to the "mongodb/" directory; 7. Create the mongodb configuration file and modify the configuration.

In php5, we can use the fsockopen() function to detect the TCP port. This function can be used to open a network connection and perform some network communication. But in php7, the fsockopen() function may encounter some problems, such as being unable to open the port, unable to connect to the server, etc. In order to solve this problem, we can use the socket_create() function and socket_connect() function to detect the TCP port.

Common solutions for PHP server environments include ensuring that the correct PHP version is installed and that relevant files have been copied to the module directory. Disable SELinux temporarily or permanently. Check and configure PHP.ini to ensure that necessary extensions have been added and set up correctly. Start or restart the PHP-FPM service. Check the DNS settings for resolution issues.

How to install and deploy php7.0: 1. Go to the PHP official website to download the installation version corresponding to the local system; 2. Extract the downloaded zip file to the specified directory; 3. Open the command line window and go to the "E:\php7" directory Just run the "php -v" command.

How to automatically set the permissions of unixsocket after the system restarts. Every time the system restarts, we need to execute the following command to modify the permissions of unixsocket: sudo...

Causes and solutions for errors when using PECL to install extensions in Docker environment When using Docker environment, we often encounter some headaches...

Local environment: redhat6.7 system. nginx1.12.1, php7.1.0, the code uses the yii2 framework problem: the local web site needs to use the elasticsearch service. When PHP uses elasticsearch built on a local server, the local load is normal. When I use AWS's elasticsearch service, the load on the local server is often too high. Check the nginx and php logs and find no exceptions. The number of concurrent connections in the system is also not high. At this time, I thought of a strace diagnostic tool that our boss told me. Debugging process: Find a php sub-process idstrace-
