PHP (5.3+) में a (backslash) क्या करता है?


172

\PHP में क्या करता है ?

उदाहरण के लिए, CSRF4PHP है \FALSE, \session_idऔर \Exception:

public function __construct($timeout=300, $acceptGet=\FALSE){
    $this->timeout = $timeout;
    if (\session_id()) {
        $this->acceptGet = (bool) $acceptGet;
    } else {
        throw new \Exception('Could not find session id', 1);
    }
}

1
@mario बहुत अच्छा स्टैक्वेटफ्लो विषय। लिंक के लिए धन्यवाद :)
अल्फ्रेड

मुझे लगता है कि इस सवाल को बंद कर दिया जाना चाहिए, लेकिन मैं खुद विषयों को बंद नहीं कर सकता ..
अल्फ्रेड

5
यह एक डुप्लिकेट है, लेकिन एक बुरा सवाल नहीं है। लेकिन आप शीर्षक में "बैकस्लैश" जोड़ सकते हैं, इसलिए किसी अन्य व्यक्ति के लिए Google के लिए आसान हो जाता है।
मारियो

1
यह महसूस करना महत्वपूर्ण है, वे अब मैसेंजर को शूट नहीं करते हैं। जब आपको पता चलता है कि यह क्या है, तो हमें दोष न दें :) OH NO, I TO TO LATE।
टिम पोस्ट

जवाबों:


247

\ (बैकस्लैश) PHP 5.3 में नाम स्थान विभाजक है।

एक \समारोह की शुरुआत से पहले ग्लोबल नेमस्पेस का प्रतिनिधित्व करता है ।

इसे वहां रखने से यह सुनिश्चित होगा कि कहा जाने वाला फ़ंक्शन वैश्विक नामस्थान से है, भले ही वर्तमान नामस्थान में उसी नाम से कोई फ़ंक्शन हो।


1
धन्यवाद! क्या आपने इसे Google का उपयोग करके पाया या क्या आपको यह पहले से पता था: P?
अल्फ्रेड

6
यह चतुर googling के माध्यम से मिला। मुझे अभी तक PHP 5.3 का उपयोग करने का मौका नहीं मिला है और उत्तर में दिलचस्पी थी। एक मिनट लगा लेकिन मुझे मिल गया।
एलन ग्लींसे

1
php backslashजिसके साथ मुझे एक लेख के लिए नेतृत्व नाम के विभाजक के रूप में इसे चुनने के पतन के बारे में बताया php namespaceगया , फिर मुझे प्रलेखन मिला।
एलन गेलिनसे

20
Googling "php backslash से पहले फंक्शन" मुझे यहाँ लाया।
इग्नोसौर नोव

4
@igneosaur गुग्लिंग "मैं एक सीमांत देव हूं और पीएचपी भयानक है" मुझे यहां लाया है
तेलुगु

23

नेमस्पेस

PHP 5.3+ में बैकस्लैश \प्रतीक का उपयोग नामस्थानों में किया जाता है। यह एक नेमस्पेस इंगित करने के लिए प्रारंभ प्रतीक है और उप-नामस्थान नामों के बीच विभाजक के रूप में भी कार्य करता है।

नामस्थान के बारे में आधिकारिक दस्तावेज देखें ।

Opcache

इसके अतिरिक्त PHP 7.0+ में कुछ कार्यों को OPCache द्वारा opcodes के साथ बदल दिया जाता है , जिससे ये विशिष्ट कार्य बहुत तेजी से चलते हैं। हालाँकि यह केवल तभी काम करता है जब कार्यों को रूट नेमस्पेस में रखा जाता है। इस विषय में इस चर्चा को देखें । इसलिए नाम रखने के अलावा, अप्रत्यक्ष रूप से कोड अनुकूलन को भी प्रभावित करता है।\

निम्नलिखित मूल कार्य इस प्रभाव से लाभान्वित होते हैं:

"array_slice"
"assert"
"boolval"
"call_user_func"
"call_user_func_array"
"chr"
"count"
"defined"
"doubleval"
"floatval"
"func_get_args"
"func_num_args"
"get_called_class"
"get_class"
"gettype"
"in_array"
"intval"
"is_array"
"is_bool"
"is_double"
"is_float"
"is_int"
"is_integer"
"is_long"
"is_null"
"is_object"
"is_real"
"is_resource"
"is_string"
"ord"
"strlen"
"strval"

22

संभावित भ्रम को स्पष्ट करने के लिए:

बैकस्लैश का अर्थ वर्ग की विरासत नहीं है ।

निम्नलिखित में, Animal, Dog, Shepherdकक्षाएं, लेकिन बस होने के लिए नहीं है नामस्थाननामकरण के टकराव से बचने के लिए समूह नामों के साथ कुछ का उपयोग किया जाता है ।

$myDog = new \Animal\Dog\Shepherd\GermanShepherd();

वैश्विक दायरे में अग्रणी \साधन Animalघोषित किया गया था।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.