2011-09-15 22 views
5

के साथ एक php वर्ग घोषित करने के लिए वहाँ php
में एक तरह से एक चर
यानी का उपयोग कर एक वर्ग घोषित करने के लिए है (यह does not काम - लेकिन इसकी यहाँ आप मेरा इरादा की एक विचार देने के लिए):कैसे एक चर नाम

$myname = "the_class"; 
class $myname { 
... 
} 

मैं भी करने की कोशिश की:

define("MYNAME","the_class"); 
class MYNAME{ 
... 
} 

और मैं करने की कोशिश की:

$myname = "the_class"; 
class $$myname { 
... 
} 
,210

यह does not वास्तव में मदद:
http://php.net/manual/en/language.variables.scope.php

और न ही इस:
http://us3.php.net/manual/en/keyword.class.php

आपकी मदद के लिए बहुत बहुत

+12

पृथ्वी पर आप ऐसा क्यों करना चाहते हैं? – NullUserException

+0

शायद अगर आपने हमें बताया कि आप इसके साथ क्या करने की योजना बना रहे हैं, तो हम आपके अंतिम लक्ष्य को पूरा करने का एक बेहतर तरीका ढूंढ सकते हैं। मैं एक कारण की कल्पना नहीं कर सकता कि इसकी आवश्यकता क्यों होगी ... – Dan

+0

मुझे लगता है कि आप $ myname को स्ट्रिंग के रूप में परिभाषित कर रहे हैं, कक्षा नहीं। एक परिवर्तनीय बिंदु दो वस्तुओं के लिए कर सकते हैं? यह एक (गणित) फ़ंक्शन 1x -> 2ys –

उत्तर

7

ज़रूर धन्यवाद, php का उपयोग नाम आप चाहते हैं के साथ एक फ़ाइल में लिखने के लिए , फिर उस फ़ाइल की आवश्यकता है। आप eval का भी उपयोग कर सकते हैं, उदा। कुछ ऐसा: eval("class $myname { ... };");

अधिक जटिल मामलों के लिए, ज़ेंड के CodeGenerator (उदाहरण here) जैसी लाइब्रेरी का उपयोग करें।

0

कृपया इस प्रतिक्रिया को ऊपर/नीचे न दें या इसे उत्तर के रूप में चिह्नित करें।

Eugen Rieck's answer सबसे अच्छा है, लेकिन टिप्पणियों में दफन हो गया।

The answer he linked to दिखाता है कि कक्षा को परिभाषित करने के लिए कक्षा का नाम कैसे उपयोग करें। यह उपयोगी है अगर आप लाइब्रेरी क्लास लिख रहे हैं और उपयोगकर्ता को जो कुछ भी चाहते हैं उसे नाम देना चाहते हैं, उदाहरण के लिए कॉन्फ़िगरेशन फ़ाइल में परिभाषित करना।

तो यदि आप MyLibraryClass युक्त लाइब्रेरी लिख रहे हैं, तो आप उपयोगकर्ता को इसे एलसी जैसे कुछ समेकन के लिए नाम दे सकते हैं ताकि वे पूरी चीज़ लिखने के बजाय एलसी :: कुछ फ़ंक्शन() या एलसी-> कुछ फ़ंक्शन लिख सकें बाहर।

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