मैं PHP 5.2पीएचपी में, यह एक समस्या का उपयोग कर एक स्थिर वर्ग समारोह कॉल करने के लिए है -> dereferencer
उपयोग कर रहा हूँ मैं निम्नलिखित कोड है:
class MyClass {
public function __construct() {}
public static function stuff() {
echo 'This is static! <br />';
}
}
$myClass = new MyClass();
MyClass::stuff(); // Reference by class.
$myClass->stuff(); // Reference by instance of class.
दोनों ही मामलों में यहां उत्पादन काम करता है आउटपुट है:
यह स्थिर है!
यह स्थिर है!
क्या पहले बनाम संदर्भ के दूसरे तरीके का उपयोग करने में कोई समस्या है?
चूंकि मुझे उसी हस्ताक्षर के साथ एक गैर स्थैतिक कार्य करने की अनुमति नहीं है क्योंकि उपरोक्त स्थिर एक मुद्दा नहीं होगा। मैं फ़ंक्शन स्थिर होना चाहता हूं क्योंकि स्थैतिक कार्यों का उपयोग करते समय गति गति भी होती है।
क्या मुझे कुछ याद आ रहा है या यह है कि कैसे -> dereference वाक्यविन्यास यह संकेत नहीं देता है कि यह एक स्थिर कार्य है?
अच्छा सवाल। :) –
यह कार्यात्मक रूप से समतुल्य है। स्थैतिक कॉल केवल एक खाली स्थानीय दायरे के साथ चलाएगा, जबकि '->' कॉल में इस उदाहरण का $ होगा। "स्थैतिक" कीवर्ड आपके मामले के लिए अधिकतर एनओपी है, केवल स्वयं :: संदर्भों के लिए प्रासंगिक है। – mario
@ मारियो, यह गलत है। किसी भी तरह से, यह एक स्थिर विधि है और '$ यह' उपलब्ध नहीं है। –