आमतौर पर पायथन और रूबी की तरह OO भाषाओं में इस्तेमाल एक मुहावरा एक वस्तु instantiating और जैसे तरीकों कि वस्तु ही के लिए एक संदर्भ लौटने के लिए, चेन है:"इनलाइन" क्लास इंस्टेंटेशन? (विधि श्रृंखलन की आसानी के लिए)
s = User.new.login.get_db_data.get_session_data
PHP में यह,
$u = new User();
$s = $u->login()->get_db_data()->get_session_data();
syntax error, unexpected T_OBJECT_OPERATOR
में निम्न परिणाम प्रयास कर रहा है: इसलिए की तरह इस व्यवहार को दोहराने के लिए संभव है
$s = new User()->login()->get_db_data()->get_session_data();
ऐसा लगता है कि यह स्थैतिक तरीकों का उपयोग करके पूरा किया जा सकता है, जो शायद मैं कर रहा हूं, लेकिन मैं lazyweb की जांच करना चाहता था: क्या वास्तव में PHP वर्ग "इनलाइन" को तुरंत चालू करने के लिए एक साफ, सरल तरीका है (जैसा दिखाया गया है उपरोक्त स्निपेट में) इस उद्देश्य के लिए?
मैं स्थिर विधियों का उपयोग करने का फैसला करते हैं, यह भी एक वर्ग के स्थिर विधि वर्ग ही के इन्स्टेन्शियशन लौटने के लिए sorcerous है? (प्रभावी रूप से अपने स्वयं के कन्स्ट्रक्टर को लिखना-वह-एक-कन्स्ट्रक्टर नहीं है?) यह गंदा लगता है, लेकिन अगर बहुत डरावने साइड इफेक्ट्स नहीं हैं, तो मैं बस ऐसा कर सकता हूं।
मुझे लगता है कि मैं get_user() विधि के साथ उपयोगकर्ता फ़ैक्टरी को पूर्व-तत्काल भी कर सकता हूं, लेकिन मैं ऊपर जो पूछा है उसके समाधान के बारे में उत्सुक हूं।
चूंकि PHP 5.4 निम्न कार्य करता है: '(नया उपयोगकर्ता()) -> लॉगिन() -> ... ', देखें [PHP चेंजलॉग] (http://php.net/ChangeLog-5.php) 5.4 के लिए .0 * "तत्कालता पर कक्षा सदस्य का उपयोग जोड़ा गया (उदाहरण के लिए (नया foo) -> बार()) समर्थन "* – hakre