PHP vsprintf with arguments -
मेरे पास निम्न श्रेणी है:
& lt;? Php class L {const login = 'लॉग इन करें'; Const शीर्षक_404 = '404'; Const title_dyn = 'शीर्षक:% s'; Const page_dyn = 'पृष्ठ:% s -% s'; सार्वजनिक स्थिर कार्य __callStatic ($ string, $ args) {vsprintf (निरंतर ("self ::"। $ String), $ args); }}
यह पारित तर्क द्वारा% s को प्रतिस्थापित नहीं करेगा:
एल :: लॉगिन; - & gt; लॉगइन एल :: शीर्षक_404; - & gt; 404 एल :: शीर्षक_डिन ('परीक्षण'); - & gt; खाली एल :: पेज_डिएन ('परीक्षण', 'अधिक'); - & gt; खाली एल :: लॉगिन (); - & gt; खाली
मुझे एल के साथ मिलना चाहिए: title_dyn ('test'); -> "शीर्षक: परीक्षा"
क्या मैं गलत कर रहा हूं?
संभवत: आपका पूर्ण टेस्टकेस ऐसा कुछ है:
& lt; ? Php वर्ग एल {const लॉगिन = 'लॉगिन'; Const शीर्षक_404 = '404'; Const title_dyn = 'शीर्षक:% s'; Const page_dyn = 'पृष्ठ:% s -% s'; सार्वजनिक स्थिर कार्य __callStatic ($ string, $ args) {vsprintf (निरंतर ("self ::"। $ String), $ args); }} इको एल :: लॉगिन "\ N"; // "लॉगिन" गूंज एल :: शीर्षक_404 "\ N"; // "404" गूंज एल :: टाइटल_डिन ('परीक्षण')। "\ N"; // (रिक्त) गूंज एल :: पेज_डिएन ('परीक्षण', 'अधिक')। "\ N"; // (खाली) गूंज एल :: लॉगिन ()। "\ N"; // (खाली)
(अगली बार, कृपया प्रश्न में इसे लिखें)
पहले दो काम क्योंकि आप नहीं हैं फ़ंक्शन-कॉल सिंटैक्स का उपयोग करके, इसलिए स्थिरांक गूंज
'as as is। है
बाद के तीन रिक्त हैं, यद्यपि __ callStatic
इसका काम करता है , यह तब पूरी तरह से उस कार्य को अस्वीकार कर देता है: आप vsprintf
के परिणाम कभी नहीं लौटाते हैं याद करें कि vsprintf
कुछ भी नहीं आउटपुट करता है & mdash; इसका परिणाम देता है इसका परिणाम आपने वहां कोई भी गूंज
नहीं लिखा था इसलिए, आपके कॉलिंग कोड का उपयोग करने के लिए कोई मूल्य नहीं है, और फ़ंक्शन के भीतर से कोई आउटपुट स्वयं भी नहीं। प्रेस्टो, जैसा आपकी समस्या कहती है।
आप निश्चित रूप से यह करना चाहते हैं:
सार्वजनिक स्थिर फ़ंक्शन __callStatic ($ string, $ args) {return vsprintf (निरंतर ( "स्वयं ::"। $ स्ट्रिंग), $ आर्ग्स); }
Comments
Post a Comment