Have you ever compared strings in if conditions like this?
if($user->role == 'admin'){
// some code
}
If yes, then it's time to improve. Here is some background to understand.
Although this approach works well and gets the job done. But it stinks. These inline strings are buried landmines in your codebase. One typo, and your condition silently fails. You’ll be chasing bugs you shouldn’t have to.
Inline Strings? What’s the actual problem?
An inline string is a hardcoded value that appears without explanation or structure. It might look harmless:
if ($user->role === 'editor') {
// grant access
}
But this string editor is floating without context, validation, or protection. Use it in 5 places, and now you’ve got 5 future headaches. Change one; forget the others — and you are done.
The Solution: Use Constants
Instead of scattering these strings everywhere, group them. Create a single source of truth. For example:
<?php
namespace App\Constants;
class UserRoles {
public const ADMIN = 'admin';
public const EDITOR = 'editor';
public const GUEST = 'guest';
}
Now use it:
if ($user->role === \App\Constants\UserRoles::EDITOR) {
// grant access
}
Can you see the difference? When you need a change, you change it in only one place — your constant (or enum) class. Now you don’t have to worry about the comparisons taking place throughout the application.
Benefits of This Approach
- Less typo-prone
- Easy to update
- Self-explanatory
- Autocomplete support in IDEs
Summary
By refactoring your codebase and extracting all inline strings into constants. You’ll reduce bugs, increase clarity, and make your codebase a whole lot easier to maintain.
Hope this little trick helps you write better code. If you think this post is helpful, you can follow my profile to get more tricks and tips.
If you found this post helpful, consider supporting my work — it means a lot.
