PHP में conditional logic के आधार पर HTML output को control करने के कई साफ़ तरीके हैं।
विधि 1: Alternative Syntax (टेम्पलेट्स के लिए सर्वश्रेष्ठ)
<?php if ($user->isLoggedIn()): ?>
<div class="welcome">
<h2>स्वागत है, <?= htmlspecialchars($user->name) ?>!</h2>
<a href="/dashboard">डैशबोर्ड</a>
</div>
<?php else: ?>
<div class="login-prompt">
<p>कृपया <a href="/login">लॉगिन</a> करें</p>
</div>
<?php endif; ?>
विधि 2: Elseif के साथ Multiple Conditions
<?php if ($user->role === 'admin'): ?>
<a href="/admin" class="btn">एडमिन पैनल</a>
<?php elseif ($user->role === 'editor'): ?>
<a href="/editor" class="btn">संपादक</a>
<?php elseif ($user->isLoggedIn()): ?>
<a href="/profile" class="btn">प्रोफाइल</a>
<?php else: ?>
<a href="/login" class="btn">लॉगिन</a>
<?php endif; ?>
विधि 3: Inline PHP में HTML (छोटे snippets के लिए)
<?php
if ($showBanner) {
?>
<div class="banner">
<h3>विशेष पेशकश!</h3>
<p>आज ही 50% छूट प्राप्त करें।</p>
</div>
<?php
}
?>
विधि 4: Ternary Operator (सरल cases के लिए)
<!-- Simple conditional attribute -->
<button class="btn = $isActive ? 'active' : 'inactive' ?>">
= $isActive ? 'सक्रिय' : 'निष्क्रिय' ?>
</button>
<!-- Variable assignment -->
<?php
$statusBadge = $isActive
? '<span class="badge success">सक्रिय</span>'
: '<span class="badge danger">निष्क्रिय</span>';
echo $statusBadge;
?>
विधि 5: Null Coalescing / Short Echo (PHP 7+)
<!-- Default values के साथ --> <h1><?= $pageTitle ?? 'डिफ़ॉल्ट शीर्षक' ?></h1> <!-- Conditional element --> <?= $user->avatar ? '<img src="' . $user->avatar . '" alt="अवतार">' : '' ?>
सर्वोत्तम अभ्यास
| स्थिति | अनुशंसित दृष्टिकोण |
|---|---|
| बड़े HTML blocks | Alternative syntax (विधि 1) |
| Simple inline conditions | Ternary / short echo (विधि 4, 5) |
| Complex logic + HTML | Variables में HTML prepare करें, फिर echo |
| Reusable components | Separate template files / View classes |
आम गलतियां से बचें
- ❌
if ($condition) { echo '...'; } - quoting nightmare- ❌ HTML में PHP tags को ठीक से close न करना
- ❌ User data को बिना
htmlspecialchars()के output करना- ✅ हमेशा
htmlspecialchars()उपयोग करें dynamic content के लिए- ✅ Indentation consistent रखें readability के लिए