मेरे पास एक अजीब कॉम्पोर्टमेंट के बारे में कोई प्रश्न है। इस कोड मेंउसी वर्ग में __callstatic के बजाय __call पर कॉल करें, अगर किसी अन्य वर्ग को कॉल न करें
देखो:
class User
{
public function can($name) {
return call_user_func(array($name, 'test'));
}
public static function __callStatic($name, $args) {
return 'User::__callStatic';
}
public function __call($name, $args) {
return 'User::__call';
}
}
class Foo
{
public static function __callStatic($name, $args) {
return 'Foo::__callStatic';
}
public function __call($name, $args) {
return 'Foo::__call?';
}
}
$u = new User();
var_dump($u->can('User'));
var_dump($u->can('Foo'));
पहले वर डंप के परिणाम है: "उपयोगकर्ता :: __ कॉल" और दूसरा: "फू :: __ callStatic"
क्यों सबसे पहले फंक्शन __callStatic कॉल नहीं करते हैं?
पीएस: मैं अन्य विषयों को देखता हूं, लेकिन एक व्याख्या नहीं मिला।
धन्यवाद
इस कोड काम करता है:: "समस्या" को हल करने के मैं केवल बुला स्वयं वर्ग के मामले में मेरी समारोह
can()
में समारोह__callStatic()
फोन https://3v4l.org/E1gKl – Edwin@Edwin मैं पता है :) यह मेरा सवाल नहीं है, मुझे पहले var डंप –
के लिए "उपयोगकर्ता :: __ कॉलस्टैटिक" होने की उम्मीद है, मैंने अब अन्य टिप्पणियों के जवाब में पोस्ट किया है जो अब – Edwin