PHP में $ (single dollar) और $$ (double dollar) operators का अलग-अलग उद्देश्य है।
$ Operator - Variable Declaration
Standard variable declaration और access के लिए उपयोग किया जाता है।
<?php $name = "अमित"; // Variable declaration $age = 25; // Integer $price = 99.99; // Float $isActive = true; // Boolean $colors = ['लाल', 'नीला']; // Array echo $name; // Variable access: अमित echo $colors[0]; // Array access: लाल
$$ Operator - Variable Variables (Dynamic Variable Names)
Variable के value को दूसरे variable के नाम के रूप में उपयोग करता है।
<?php
$variableName = 'name';
$name = 'अमित';
echo $$variableName; // Output: अमित
// Equivalent to: echo $name;
// Practical example
$prefix = 'user_';
$field = 'email';
${$prefix . $field} = 'amit@example.com';
echo $user_email; // अमित@example.com
दृश्य व्याख्या
| Code | Meaning | Result |
|---|---|---|
$var = 'hello' | $var नाम का variable बनाएं | $var = 'hello' |
$$var = 'world' | $var के value ('hello') नाम का variable बनाएं | $hello = 'world' |
echo $$var | $var के value नाम के variable का value | 'world' |
व्यावहारिक उदाहरण
<?php
// Dynamic form processing
$fields = ['name', 'email', 'phone', 'address'];
foreach ($fields as $field) {
$varName = 'form_' . $field;
$$varName = $_POST[$field] ?? '';
}
// Now available as: $form_name, $form_email, $form_phone, $form_address
// Configuration से dynamic variables
$config = [
'db_host' => 'localhost',
'db_name' => 'myapp',
'db_user' => 'admin'
];
foreach ($config as $key => $value) {
$$key = $value;
}
// Now: $db_host, $db_name, $db_user available
सावधानियां
- पठनीयता कम करता है - code tracing कठिन होता है
- Security risk - user input से variable names न बनाएं
- Debugging कठिन - IDE variable tracking नहीं कर सकते
- बेहतर विकल्प: Arrays या Objects उपयोग करें
बेहतर विकल्प: Arrays
<?php
// Instead of variable variables
$data = [];
foreach ($fields as $field) {
$data[$field] = $_POST[$field] ?? '';
}
// Access: $data['name'], $data['email']
// Cleaner, safer, IDE-friendly