2011-03-03 10 views
5

मैं सोच रहा था, क्या एक प्रकार का चर है जो 'स्थैतिक' होगा जिसका अर्थ है कि यह php में सभी उपयोगकर्ताओं के लिए समान होगा? मुझे पता है कि php में किसी फ़ंक्शन के भीतर स्थिर चर होने की संभावना है लेकिन यह वही नहीं है जो मैं चाहता हूं।हर किसी के लिए समान चर?

मैं चाहता हूं कि हर कोई उस वस्तु को साझा करे जो मैं उपयोगकर्ता की मांग के आधार पर कुशलतापूर्वक उपयोग करूंगा। या, एक और उदाहरण जो मैं चाहता हूं उसके समान है, क्या एक वैरिएबल रखने का एक तरीका है जो आगंतुकों की संख्या को गिना जाता है (किसी भी प्रकार की फ़ाइल या डेटाबेस मैनिपुलेशन का उपयोग किए बिना)। उपयोगकर्ता द्वारा मेरे पृष्ठ पर आने पर हर चर को बढ़ाया जाएगा।

चीयर्स!

+5

आप इसे कहीं स्टोर करने के लिए नहीं तो एक डाटाबेस, तो एक फ्लैट फ़ाइल दिन के –

+0

भयानक विचार है: सभी उपयोगकर्ताओं को एक ही $ _SESSION कर यहाँ पीएचपी प्रलेखन के लिए एक लिंक प्राप्त करने के लिए आप शुरू कर दिया है ... उन्हें सभी एक ही सत्र आईडी दें। – Guttsy

+2

^^^ लॉल, यह भयानक है। –

उत्तर

4

फ़ाइल या डेटाबेस का उपयोग किए बिना, मेरा मानना ​​है कि आप APC जैसे कुछ का उपयोग कर ऐसा कर सकते हैं।

$var = 1; 
$key = 'myVariable'; 
apc_store($key, $var); 
echo apc_fetch($key); // 1 

आप इसे बढ़ाने के लिए चाहते हैं, आप अगर कैश साफ़ कर रहा है (जो तब होता है जब यह भरता या सर्वर है उपयोग कर सकते हैं apc_inc()

echo apc_inc($key); // 2 

हालांकि, इस चर संरक्षित नहीं किए जाएंगे पुन: प्रारंभ)।

0

मुझे लगता है कि आप जो खोज रहे हैं उसे वैश्विक चर कहा जाता है।

पेज-व्यू काउंटर के संदर्भ में, हम आमतौर पर फ़ाइलों के अंदर चर के साथ ऐसा करते हैं। Here's a good example

आप इसे डेटाबेस के माध्यम से भी कर सकते हैं, लेकिन यदि आपके पास पहले से डेटाबेस नहीं है, तो ऐसा लगता है कि हिट काउंटर के लिए केवल एक प्राप्त करने के लिए ओवरकिल की तरह लगता है।

+0

एसक्यूएलएट शायद ही कभी अधिक है। यह मूल रूप से एक फ्लैट फ़ाइल में एक डेटाबेस है। शायद सबसे अच्छा विकल्प (एक फ्लैट फ़ाइल के अलावा)। –

1

नहीं। कुछ (अधिकांश?) सेटअप में, प्रत्येक अनुरोध को अलग-अलग प्रक्रियाओं में संभाला जाता है जो एक दूसरे के साथ पता स्थान साझा नहीं करते हैं। आपको एक डेटाबेस या अन्य लगातार भंडारण तंत्र की आवश्यकता है।

0

मुझे लगता है कि आप एक अपाचे सर्वर चर का उपयोग कर सकते हैं। संभवतः गैर-अपाचे सर्वरों में कुछ समान होगा।

वर्र्स apache_setenv/apache_getenv के साथ सेट/प्राप्त किया जा सकता है। सवाल यह है कि क्या वे सभी अपाचे बच्चों में फैल जाएंगे, या सिर्फ PHP स्क्रिप्ट पर चल रहा है।

बेशक, चूंकि वे गतिशील रूप से सेट हैं, आप जब भी अपाचे रीसेट हो जाते हैं तो आप मान खो देंगे।

3

सेमफोर और साझा स्मृति देखें और वे PHP में कैसे काम करते हैं। साझा मेमोरी वेरिएबल के साथ विभिन्न प्रक्रियाएं (उपयोगकर्ता) एक ही मेमोरी स्पेस का उपयोग कर सकती हैं और समान चर का उपयोग कर सकती हैं।

http://www.php.net/manual/en/function.shm-get-var.php

संबंधित मुद्दे