फिक्स्ड!


मेरे पास 2 PHP पृष्ठ हैं जो दोनों चर "शीर्षक" को कुछ अलग के रूप में परिभाषित करते हैं। हालांकि, दोनों पृष्ठों पर चर को प्रतिध्वनित करने के परिणामस्वरूप पहले पृष्ठ के चर का मान दोनों पृष्ठों पर प्रदर्शित होता है। कोई विचार क्यों और कैसे मैं प्रत्येक पृष्ठ के लिए चर बदलने के लिए प्राप्त कर सकता हूं?

पहला PHP पृष्ठ:

<?php
    $title = "Posts";
    echo $title;
 ?>

यह "पोस्ट" प्रदर्शित करता है।

दूसरा PHP पृष्ठ:

<?php 
  $title = "New Posts";
  echo $title; 
?>

यह किसी कारण से "पोस्ट" प्रदर्शित करता है। क्या यह पृष्ठ "नई पोस्ट" प्रदर्शित नहीं करना चाहिए?

0
codedude 11 अप्रैल 2011, 05:22
4
कृपया अपना कोड दिखाएं, यह वास्तव में उत्तरदायी नहीं है।
 – 
deceze
11 अप्रैल 2011, 05:25
1
क्या आप अधिक विवरण दे सकते हैं? क्या आप includeएक पेज पर दूसरे पेज पर हैं, या...?
 – 
AgentConundrum
11 अप्रैल 2011, 05:25
क्या आपने [register_globals][1] चालू किया हुआ है? आप PHP के किस संस्करण का उपयोग कर रहे हैं? [1]: php.net/manual/en/security.globals.php
 – 
Felipe
11 अप्रैल 2011, 05:28
अभी जोड़ा गया कोड उदाहरण
 – 
codedude
11 अप्रैल 2011, 05:28
PHP 5.3.5 रजिस्टर_ग्लोबल्स ऑफ के साथ (उबंटू 11.04)
 – 
codedude
11 अप्रैल 2011, 05:31

1 उत्तर

सबसे बढ़िया उत्तर

यदि आप पहले पृष्ठ पर दूसरे पृष्ठ को शामिल कर रहे हैं पहले आप पहले पृष्ठ पर $title परिभाषित करते हैं, तो शामिल मान को अधिलेखित कर दिया जाएगा।

क्या आपके सभी चर वैश्विक नामस्थान में परिभाषित हैं? यदि ऐसा है, तो यह समस्या तब अनिवार्य होगी जब आप अन्य PHP फ़ाइलों में PHP फ़ाइलें शामिल कर रहे हों।

आप किसी वर्ग या नामस्थान में अपने चरों को ठीक से इनकैप्सुलेट करके समस्या का समाधान कर सकते हैं; उदाहरण के लिए:

फ़ाइल एक में:

<?php
namespace included;
$title = "original title!";
?>

और फ़ाइल दो में:

<?php
namespace including;
require_once "file_one.php";
$title = "new title!";

echo \included\$title;
echo \including\$title;
echo $title;
?>

जो प्रदर्शित करेगा:

original title!
new title!
new title!
0
Ryan 11 अप्रैल 2011, 05:29
मैं पृष्ठों को बिल्कुल शामिल नहीं कर रहा हूं। यह दो पूरी तरह से अलग पृष्ठ हैं। हालाँकि प्रत्येक पृष्ठ में एक ही चर होता है जिसका मान भिन्न होता है।
 – 
codedude
11 अप्रैल 2011, 05:31
हम्म। यहाँ कुछ नहीं जुड़ता है; क्या आपने संपूर्ण प्रासंगिक स्रोत को अपने प्रश्न में कॉपी किया है?
 – 
Ryan
11 अप्रैल 2011, 05:32
क्या आप फाइलों को एक बार में निष्पादित कर रहे हैं? यदि ऐसा है - आपके द्वारा दी गई जानकारी के आधार पर - आप जो वर्णन कर रहे हैं वह संभव नहीं है। क्या वे शायद दोनों एक सामान्य तीसरे पृष्ठ पर शामिल हैं? :]
 – 
Ryan
11 अप्रैल 2011, 05:42
1
मुझे लगा कि मैं क्या गलत कर रहा था। मेरे पास एक शामिल PHP फ़ाइल है जिसे मैंने सोचा था कि कुछ भी नहीं कर रहा था जब वास्तव में यह चर को परिभाषित कर रहा था।
 – 
codedude
11 अप्रैल 2011, 05:45