【Related learning recommendations: php graphic tutorial】
These 5 bad habits in PHP programming must be changed PHP is the best language in the world!
Test whether the array is empty before looping?
$items = [];// ...if (count($items) > 0) { foreach ($items as $item) { // process on $item ... }}复制代码
foreach
Loop or array function (array_*)
can handle empty arrays.
- No need to test first
- You can reduce one level of indentation
$items = [];// ...foreach ($items as $item) { // process on $item ...}复制代码
Encapsulate all the contents of the method in an if statement
function foo(User $user) { if (!$user->isDisafunction foo(User $user) { if (!$user->isDisabled()) { // ... // long process // ... } }bled()) { // ... // long process // ... } }复制代码
This is not PHP specific, but I see it all the time. You can reduce the indentation level of minimalist code by returning early! All "useful" bodies of the function are now at the first indentation level
function foo(User $user) { if ($user->isDisabled()) { return; } // ... // long process // ...}复制代码
Multiple calls to isset
Method
$a = null; $b = null; $c = null;// ...if (!isset($a) || !isset($b) || !isset($c)) { throw new Exception("undefined variable"); }// orif (isset($a) && isset($b) && isset($c) { // process with $a, $b et $c}// or $items = [];//...if (isset($items['user']) && isset($items['user']['id']) { // process with $items['user']['id']}复制代码
We often need to check if a variable has been defined ( instead of null
).
In PHP we can do this using isset function. And the function can accept multiple parameters at a time!
$a = null; $b = null; $c = null;// ...if (!isset($a, $b, $c)) { throw new Exception("undefined variable"); }// orif (isset($a, $b, $c)) { // process with $a, $b et $c}// or $items = [];//...if (isset($items['user'], $items['user']['id'])) { // process with $items['user']['id']}复制代码
echo
method combined with sprintf
$name = "John Doe";echo sprintf('Bonjour %s', $name);复制代码
This code may be smiling, but I happened to write it a while ago. And I still see a lot of it! Instead of combining echo
and sprintf
, we can simply use the printf
method.
$name = "John Doe"; printf('Bonjour %s', $name);复制代码
Checking the existence of a key in an array by combining two methods
$items = [ 'one_key' => 'John', 'search_key' => 'Jane', ];if (in_array('search_key', array_keys($items))) { // process}复制代码
The last mistake I see often is using a combination of in_array
and array_keys
. All of these can be replaced using array_key_exists.
$items = [ 'one_key' => 'John', 'search_key' => 'Jane', ];if (array_key_exists('search_key', $items)) { // process}复制代码
We can also use isset to check whether the value is null.
if (isset($items['search_key'])) { // process}复制代码
Thank you for reading. If it is helpful to you, please follow the "CRMEB" Nuggets account. There are our open source mall projects and knowledge payment projects on Code Cloud, which are all developed based on PHP. You are welcome to use them for learning and research. Follow us to stay in touch!
Related learning recommendations: php programming(Video)
The above is the detailed content of Be sure to get rid of these 5 bad habits in PHP programming!. For more information, please follow other related articles on the PHP Chinese website!

Thedifferencebetweenunset()andsession_destroy()isthatunset()clearsspecificsessionvariableswhilekeepingthesessionactive,whereassession_destroy()terminatestheentiresession.1)Useunset()toremovespecificsessionvariableswithoutaffectingthesession'soveralls

Stickysessionsensureuserrequestsareroutedtothesameserverforsessiondataconsistency.1)SessionIdentificationassignsuserstoserversusingcookiesorURLmodifications.2)ConsistentRoutingdirectssubsequentrequeststothesameserver.3)LoadBalancingdistributesnewuser

PHPoffersvarioussessionsavehandlers:1)Files:Default,simplebutmaybottleneckonhigh-trafficsites.2)Memcached:High-performance,idealforspeed-criticalapplications.3)Redis:SimilartoMemcached,withaddedpersistence.4)Databases:Offerscontrol,usefulforintegrati

Session in PHP is a mechanism for saving user data on the server side to maintain state between multiple requests. Specifically, 1) the session is started by the session_start() function, and data is stored and read through the $_SESSION super global array; 2) the session data is stored in the server's temporary files by default, but can be optimized through database or memory storage; 3) the session can be used to realize user login status tracking and shopping cart management functions; 4) Pay attention to the secure transmission and performance optimization of the session to ensure the security and efficiency of the application.

PHPsessionsstartwithsession_start(),whichgeneratesauniqueIDandcreatesaserverfile;theypersistacrossrequestsandcanbemanuallyendedwithsession_destroy().1)Sessionsbeginwhensession_start()iscalled,creatingauniqueIDandserverfile.2)Theycontinueasdataisloade

Absolute session timeout starts at the time of session creation, while an idle session timeout starts at the time of user's no operation. Absolute session timeout is suitable for scenarios where strict control of the session life cycle is required, such as financial applications; idle session timeout is suitable for applications that want users to keep their session active for a long time, such as social media.

The server session failure can be solved through the following steps: 1. Check the server configuration to ensure that the session is set correctly. 2. Verify client cookies, confirm that the browser supports it and send it correctly. 3. Check session storage services, such as Redis, to ensure that they are running normally. 4. Review the application code to ensure the correct session logic. Through these steps, conversation problems can be effectively diagnosed and repaired and user experience can be improved.

session_start()iscrucialinPHPformanagingusersessions.1)Itinitiatesanewsessionifnoneexists,2)resumesanexistingsession,and3)setsasessioncookieforcontinuityacrossrequests,enablingapplicationslikeuserauthenticationandpersonalizedcontent.


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

SublimeText3 Chinese version
Chinese version, very easy to use

SublimeText3 Linux new version
SublimeText3 Linux latest version

Dreamweaver Mac version
Visual web development tools

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.
