सवाल संदर्भ - PHP में इस प्रतीक का क्या अर्थ है?


यह क्या है?

यह प्रश्नों का एक संग्रह है जो हर समय और फिर PHP में वाक्यविन्यास के बारे में आता है। यह एक सामुदायिक विकी भी है, इसलिए इस सूची को बनाए रखने में सभी को भाग लेने के लिए आमंत्रित किया जाता है।

ऐसा क्यों है?

ऑपरेटरों और अन्य वाक्यविन्यास टोकन के बारे में प्रश्न ढूंढना मुश्किल था
मुख्य विचार है कि स्टैक ओवरफ़्लो पर मौजूदा प्रश्नों के लिंक हों, इसलिए हमारे लिए संदर्भित करना आसान है, PHP मैनुअल से सामग्री पर प्रतिलिपि न लें।

¹ नोट: जनवरी 2013 से, स्टैक ओवरफ़्लो विशेष पात्रों का समर्थन करता है। उद्धरणों से बस खोज शब्द को घेरे, उदा। [php] "==" vs "==="

मुझे यहाँ क्या करना चाहिए?

अगर आपको किसी के द्वारा यहां बताया गया है क्योंकि आपने ऐसा प्रश्न पूछा है, तो कृपया नीचे दिए गए विशेष वाक्यविन्यास को ढूंढें। लिंक किए गए पेजों को PHP मैनुअल लिंक किए गए प्रश्नों के साथ-साथ आपके प्रश्न का उत्तर देने की संभावना भी होगी। यदि ऐसा है, तो आपको उत्तर को ऊपर उठाने के लिए प्रोत्साहित किया जाता है। यह सूची दूसरों द्वारा प्रदान की गई सहायता के विकल्प के रूप में नहीं है।

सूचि

यदि आपका विशेष टोकन नीचे सूचीबद्ध नहीं है, तो आप इसे पा सकते हैं पार्सर टोकन की सूची


&  बिटवाई ऑपरेटर या संदर्भ


=&  संदर्भ


&=  बिटवाई ऑपरेटर


&&  लॉजिकल ऑपरेटर्स


%  अंकगणितीय आपरेटर


!!  लॉजिकल ऑपरेटर्स


@  त्रुटि नियंत्रण ऑपरेटर


?:  टर्नरी ऑपरेटर


??  नल Coalesce ऑपरेटर (PHP 7 के बाद से)


:  नियंत्रण संरचनाओं के लिए वैकल्पिक वाक्यविन्यास, टर्नरी ऑपरेटर


::  स्कोप संकल्प ऑपरेटर


\  नेमस्पेस


->  कक्षाएं और वस्तुओं


=>  Arrays


^  बिटवाई ऑपरेटर


>>  बिटवाई ऑपरेटर


<<  बिटवाई ऑपरेटर


<<<  हेरेडोक या नाओडोक


=  असाइनमेंट ऑपरेटर


==  तुलना ऑपरेटर


===  तुलना ऑपरेटर


!==  तुलना ऑपरेटर


!=  तुलना ऑपरेटर


<>  तुलना ऑपरेटर


<=>  तुलना ऑपरेटर (PHP 7.0 के बाद से)


|  बिटवाई ऑपरेटर


||  लॉजिकल ऑपरेटर्स


~  बिटवाई ऑपरेटर


+  अंकगणितीय आपरेटर, ऐरे ऑपरेटर


+= तथा -=  असाइनमेंट ऑपरेटर


++ तथा --  ऑपरेटर बढ़ाना / घटाना


.=  असाइनमेंट ऑपरेटर


.  स्ट्रिंग ऑपरेटर


,  फंक्शन तर्क

,  परिवर्तनीय घोषणाएं


$$  परिवर्तनीय चर


`  निष्पादन ऑपरेटर


<?=  लघु खुले टैग


[]  Arrays (PHP 5.4 के बाद से लघु वाक्यविन्यास)


<?  खुले और समापन टैग


...  तर्क अनपॅकिंग (PHP 5.6 के बाद से)


**  घातांक (PHP 5.6 के बाद से)


#  वन-लाइन शेल-स्टाइल टिप्पणी



3793


मूल


मुझे पता है कि यह कड़ाई से PHP नहीं है, लेकिन एक लिंक को शामिल करने के बारे में क्या है phpdoc.org phpDocumentor टिप्पणी वाक्यविन्यास के लिए, जिसे आमतौर पर उपयोग किया जाता है और खोजना भी असंभव है /**? - Mike
क्या मैं स्क्वायर ब्रैकेट और घुंघराले ब्रैकेट का सुझाव दे सकता हूं? - ajreal
मैं इस समस्या में बहुत भाग गया (विशेष पात्रों की खोज करने में सक्षम नहीं), यही कारण है कि मैंने बनाया SymbolHound, एक खोज इंजन जो विशेष पात्रों को अनदेखा नहीं करता है। मैंने इसे भी पोस्ट किया StackApps। - dncrane
खैर, शीर्षक से ऐसा क्यों है?, मुझे लगता है कि ऐसा इसलिए है क्योंकि "मुख्य विचार स्टैक ओवरफ़्लो पर मौजूदा प्रश्नों के लिंक होना है, इसलिए हमारे लिए संदर्भ देना हमारे लिए आसान है"। - Herbert
आज एक प्रश्न पूछा गया (नवंबर 20/15) stackoverflow.com/questions/33833259/what-is-rscat-in-php पूछ "Php में $ rsCat क्या है" (क्या वह प्रश्न अभी भी दिखाना चाहिए और हटाया नहीं जाना चाहिए)। आश्चर्यजनक रूप से पर्याप्त, इसके बारे में कोई संदर्भ नहीं है $ परिवर्तनीय, लेकिन के बारे में $$ केवल परिवर्तनीय चर। मुझे विश्वास है कि कहीं कहीं संशोधित किया जाना चाहिए। - Funk Forty Niner


जवाब:


ऑपरेटर बढ़ाना / घटाना

++ वृद्धि ऑपरेटर

-- कमी ऑपरेटर

Example    Name              Effect
---------------------------------------------------------------------
++$a       Pre-increment     Increments $a by one, then returns $a.
$a++       Post-increment    Returns $a, then increments $a by one.
--$a       Pre-decrement     Decrements $a by one, then returns $a.
$a--       Post-decrement    Returns $a, then decrements $a by one.

ये चर के पहले या बाद में जा सकते हैं।

यदि परिवर्तनीय से पहले रखा गया है, तो वैरिएबल में वृद्धि / कमी ऑपरेशन किया जाता है प्रथम तो परिणाम वापस आ गया है। यदि परिवर्तनीय के बाद रखा गया है, चर है प्रथम वापस आ गया, तो वृद्धि / कमी ऑपरेशन किया जाता है।

उदाहरण के लिए:

$apples = 10;
for ($i = 0; $i < 10; ++$i) {
    echo 'I have ' . $apples-- . " apples. I just ate one.\n";
}

लाइव उदाहरण

उपरोक्त मामले में ++$i प्रयोग किया जाता है, क्योंकि यह तेज़ है। $i++ एक ही परिणाम होगा।

प्री-इंक्रिमेंटमेंट थोड़ा तेज़ है, क्योंकि यह वास्तव में चर को बढ़ाता है और उसके बाद परिणाम 'रिटर्न' होता है। पोस्ट-इंक्रिमेंटेशन एक विशेष चर बनाता है, पहले चर के मूल्य की प्रतिलिपि बनाता है और केवल पहले चर के उपयोग के बाद, इसके मूल्य को दूसरे के साथ बदल देता है।

हालांकि, आपको उपयोग करना होगा $apples--, सबसे पहले आप सेब की वर्तमान संख्या प्रदर्शित करना चाहते हैं, और फिर आप इससे एक घटाना चाहते हैं।

आप PHP में अक्षरों को भी बढ़ा सकते हैं:

$i = "a";
while ($i < "c") {
    echo $i++;
}

एक बार z पहुंच गया aa अगला है, और इसी तरह।

ध्यान दें कि चरित्र चर को बढ़ाया जा सकता है लेकिन कम नहीं किया गया है और यहां तक ​​कि केवल सादा ASCII वर्ण (ए-जेड और ए-जेड) समर्थित हैं।


स्टैक ओवरफ़्लो पोस्ट:


950



अंतर केवल गति से बहुत अधिक है ... $ x = 0 पर विचार करें; $ y = $ x ++; $ x = 0 की तुलना में; $ y = ++ $ x; और प्रत्येक मामले में $ y का मूल्य - Mark Baker
नोट के लिए +1 कि कमीशन वर्णों पर काम नहीं करते हैं, केवल संख्याओं पर - Mark Baker
हर किसी के लिए, कृपया पूर्व-वृद्धि के बारे में बोल्ड जानकारी को infinitesimally तेजी से हटा दें। यह समयपूर्व अनुकूलन का पूर्ण सबसे खराब उदाहरण है और इस प्रकार की जानकारी लोगों के सिर में नहीं होनी चाहिए यदि वे सिर्फ PHP सीखना शुरू कर रहे हैं। - Lotus Notes
@ लोटस - मैं इसे एक मजेदार तथ्य मानता हूं। यदि आप PHP, या C ++, आदि के लिए शुरुआत कर रहे हैं, तो यह बहुत निराशाजनक लगता है कि ++ i और i ++ अलग-अलग गति से काम करने के लिए काफी अलग हैं। मैंने इसे आकर्षक पाया। - Peter Ajtai
@ पीटर अजताई हां, यह दिलचस्प है, लेकिन जिस तरह से आपने अपनी पोस्ट को संरचित किया है, वैसे ही आप इसे PHP के प्रमुख तथ्यों में से एक की तरह लगते हैं जो भाषा का उपयोग करने के लिए बिल्कुल महत्वपूर्ण है। - Lotus Notes


बिटवाई ऑपरेटर

थोड़ा सा क्या है थोड़ा सा 1 या 0 का प्रतिनिधित्व है। मूल रूप से बंद (0) और चालू (1)

बाइट क्या है? एक बाइट 8 बिट्स से बना होता है और बाइट का उच्चतम मूल्य 255 होता है, जिसका अर्थ यह होगा कि प्रत्येक बिट सेट हो। हम देखेंगे कि बाइट का अधिकतम मूल्य 255 क्यों है।

-------------------------------------------
|      1 Byte ( 8 bits )                  |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
-------------------------------------------

1 बाइट का यह प्रतिनिधित्व

1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255 (1 बाइट)

बेहतर समझने के लिए कुछ उदाहरण

"और" ऑपरेटर: &

$a =  9;
$b = 10;
echo $a & $b;

यह संख्या 8 का उत्पादन करेगा क्यों? खैर देखते हैं कि हमारे टेबल उदाहरण का उपयोग करें।

-------------------------------------------
|      1 Byte ( 8 bits )                  |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
-------------------------------------------
|      $a    |   0|  0|  0|  0| 1| 0| 0| 1|    
-------------------------------------------
|      $b    |   0|  0|  0|  0| 1| 0| 1| 0|
------------------------------------------- 
|      &     |   0|  0|  0|  0| 1| 0| 0| 0|
------------------------------------------- 

तो आप तालिका से देख सकते हैं कि वे एक साथ साझा करते हैं केवल 8 बिट है।

दूसरा उदाहरण

$a =  36;
$b = 103;
echo $a & $b; // This would output the number 36.
$a = 00100100
$b = 01100111

दो साझा बिट्स 32 और 4 हैं, जो एक साथ जोड़े जाने पर 36 लौटते हैं।

"या" ऑपरेटर: |

$a =  9;
$b = 10;
echo $a | $b;

यह संख्या 11 आउटपुट होगा क्यों?

-------------------------------------------
|      1 Byte ( 8 bits )                  |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
-------------------------------------------
|      $a    |   0|  0|  0|  0| 1| 0| 0| 1|    
-------------------------------------------
|      $b    |   0|  0|  0|  0| 1| 0| 1| 0|
------------------------------------------- 
|      |     |   0|  0|  0|  0| 1| 0| 1| 1|
-------------------------------------------

आप देखेंगे कि हमारे पास 8 बिट्स सेट हैं, 8, 2 और 1 कॉलम में। उन्हें जोड़ें: 8 + 2 + 1 = 11।


361



क्या होगा यदि $ 25 255 से अधिक मान लेता है? - Aycan Yaşıt
थोड़ा सा ऑनलाइन कैलक्यूलेटर है: bitwiseoperatorcalculator.com - jonprasetyo
@ AycanYaşıt अधिकांश ऑपरेटिंग सिस्टम 32 बिट और 64 बिट सिस्टम का उपयोग कर रहा है, जिसका मतलब है कि सीमा 255 (8 बिट्स) से अधिक है। - AlbertSamuel
@ AycanYaşit वास्तव में, एक बाइट लंबाई के साथ यहां प्रतिनिधित्व भी सही नहीं है, क्योंकि आधुनिक 64 बिट प्लेटफॉर्म पर स्मृति में भी सबसे छोटा पूर्णांक 64 बिट (8 बाइट) है। - Kaii


_  गेटटेक्स्ट के लिए उपनाम () 

अंडरस्कोर चरित्र '_' के रूप में _() के लिए एक उपनाम है gettext() समारोह।


225





Syntax    Name             Description

x == y    Equality         True if x and y have the same key/value pairs
x != y    Inequality       True if x is not equal to y
x === y   Identity         True if x and y have the same key/value pairs
                            in the same order and of the same types
x !== y   Non-identity     True if x is not identical to y
++ x      Pre-increment    Increments x by one, then returns x
x ++      Post-increment   Returns x, then increments x by one
-- x      Pre-decrement    Decrements x by one, then returns x
x --      Post-decrement   Returns x, then decrements x by one
x and y   And              True if both x and y are true x=6 y=3
                           (x < 10 and y > 1) returns true 
x && y    And              True if both x and y are true x=6 y=3
                           (x < 10 && y > 1) returns true
a . b     Concatenation    Concatenate two strings: "Hi" . "Ha"

210





जादू स्थिरांक: हालांकि ये सिर्फ प्रतीक नहीं हैं बल्कि इस टोकन परिवार का महत्वपूर्ण हिस्सा हैं। आठ जादुई स्थिरांक हैं जो उनके उपयोग के आधार पर बदलते हैं।

__LINE__: फ़ाइल की वर्तमान पंक्ति संख्या।

__FILE__: फ़ाइल का पूरा पथ और फ़ाइल नाम। यदि किसी अंदर शामिल होता है, तो शामिल फ़ाइल का नाम वापस कर दिया जाता है। PHP 4.0.2 के बाद से, __FILE__ हमेशा symlinks हल के साथ एक पूर्ण पथ होता है जबकि पुराने संस्करणों में इसमें कुछ परिस्थितियों में सापेक्ष पथ होता है।

__DIR__: फ़ाइल की निर्देशिका। यदि किसी अंदर शामिल किया गया है, तो शामिल फ़ाइल की निर्देशिका वापस कर दी गई है। यह बराबर है dirname(__FILE__)। इस निर्देशिका नाम में पीछे की ओर स्लैश नहीं है जब तक कि यह रूट निर्देशिका न हो। (PHP 5.3.0 में जोड़ा गया।)

__FUNCTION__: समारोह का नाम। (PHP 4.3.0 में जोड़ा गया) PHP 5 के रूप में यह निरंतर फ़ंक्शन नाम देता है क्योंकि इसे घोषित किया गया था (केस-संवेदी)। PHP 4 में इसका मान हमेशा कम हो जाता है।

__CLASS__: वर्ग का नाम। (PHP 4.3.0 में जोड़ा गया) PHP 5 के रूप में यह निरंतर वर्ग नाम देता है क्योंकि इसे घोषित किया गया था (केस-संवेदी)। PHP 4 में इसका मान हमेशा कम हो जाता है। कक्षा के नाम में नामस्थान शामिल किया गया था (उदा। Foo\Bar)। ध्यान दें कि PHP 5.4 के रूप में __CLASS__ लक्षणों में भी काम करता है। जब एक विशेषता विधि में उपयोग किया जाता है, __CLASS__ उस वर्ग का नाम है जिसका उपयोग किया जाता है।

__TRAIT__: विशेषता का नाम। (PHP 5.4.0 में जोड़ा गया) PHP 5.4 के रूप में यह निरंतर गुण देता है क्योंकि इसे घोषित किया गया था (केस-संवेदी)। विशेषता नाम में नामस्थान शामिल किया गया था (उदा। Foo\Bar)।

__METHOD__: वर्ग विधि का नाम। (PHP 5.0.0 में जोड़ा गया) विधि का नाम वापस कर दिया गया है क्योंकि इसे घोषित किया गया था (केस-संवेदी)।

__NAMESPACE__: वर्तमान नामस्थान का नाम (केस-संवेदी)। यह निरंतर संकलन-समय में परिभाषित किया गया है (PHP 5.3.0 में जोड़ा गया)।

स्रोत


194





<=> स्पेसशिप ऑपरेटर

PHP 7 में जोड़ा गया

स्पेसशिप ऑपरेटर  <=> PHP 7 में जोड़ा गया नवीनतम तुलना ऑपरेटर है। यह एक है गैर साहचर्य समानता वाले ऑपरेटरों के समान बाध्यकारी ऑपरेटर (==, !=, ===, !==)। यह ऑपरेटर बाएं हाथ और दाएं हाथ के संचालन के बीच सरल तीन-तरफा तुलना करने की अनुमति देता है।

ऑपरेटर के परिणामस्वरूप पूर्णांक अभिव्यक्ति होती है:

  • 0 जब दोनों ऑपरेंड बराबर होते हैं
  • से कम 0 जब बाएं हाथ के ऑपरेंड दाएं हाथ के ऑपरेंड से कम है
  • से अधिक 0 जब बाएं हाथ का ऑपरेंड दाएं हाथ के ऑपरेंड से बड़ा होता है

जैसे

1 <=> 1; // 0
1 <=> 2; // -1
2 <=> 1; // 1

इस ऑपरेटर का उपयोग करने का एक अच्छा व्यावहारिक अनुप्रयोग तुलनात्मक प्रकार कॉलबैक में होगा जो कि दो मानों के बीच तीन-तरफा तुलना के आधार पर शून्य, नकारात्मक, या सकारात्मक पूर्णांक लौटने की उम्मीद है। तुलना समारोह पारित किया गया usort ऐसा एक उदाहरण है।

PHP 7 से पहले आप लिखेंगे ...

$arr = [4,2,1,3];

usort($arr, function ($a, $b) {
    if ($a < $b) {
        return -1;
    } elseif ($a > $b) {
        return 1;
    } else {
        return 0;
    }
});

चूंकि PHP 7 आप लिख सकते हैं ...

$arr = [4,2,1,3];

usort($arr, function ($a, $b) {
    return $a <=> $b;
});

189



सुनिश्चित नहीं है कि कैसे $a <=> $b के लिए अलग है $a - $b - rev
@AcidShout $a - $b संख्याओं के लिए काम करता है, लेकिन तार, वस्तुओं, या सरणी नहीं। - mcrumley
@mcrumley नहीं, यह उससे भी बदतर है। सामान्य रूप में $a - $b संख्याओं के लिए भी काम नहीं करता है; यह केवल के लिए काम करता है पूर्णांकों। यह गैर-पूर्णांक संख्याओं के लिए काम नहीं करता है, क्योंकि usort आपके तुलनित्र फ़ंक्शन के रिटर्न मानों को आपके पास रखता है int, जिसका अर्थ है कि 0.5 को 0 तक कास्ट किया जाता है, जिसका अर्थ है कि 1 से कम के अंतर वाले दो नंबर, जैसे कि 4 और 4.6, (जो आपके तुलनित्र फ़ंक्शन के पहले तर्क के रूप में पारित हो जाता है) गलत रूप से बराबर तुलना करें। - Mark Amery
@MarkAmery माइग्रेशन गाइड ऑपरेटर का दस्तावेजी व्यवहार नहीं है। इसके लिए आप मैन्युअल के भाषा ऑपरेटर अनुभाग को देखना चाहते हैं php.net/language.operators.comparison इसके पीछे वास्तविक व्यवहार एपीआई के विभिन्न तुलना कार्यों पर निर्भर करता है, जैसे कि जब आप तारों के लिए strcmp कर रहे हैं, जहां आप प्रत्येक मामले में वास्तविक रिटर्न वैल्यू की गारंटी नहीं दे सकते। निश्चित रूप से, यह लगभग हमेशा 1, 0, या -1 है, लेकिन उन मामलों के लिए जहां आप इसे libc के strcmp को लपेटने की तरह गारंटी नहीं दे सकते हैं, आप अंतर्निहित स्पेस को सुरक्षित रखने के समान परिभाषित व्यवहार की पेशकश करते हैं - Sherif
@MarkAmery यहां बिंदु यह है कि लोगों को अपरिभाषित व्यवहार पर भरोसा न करें। एक ऐसे मामले के लिए जहां किसी को एक मान मिलता है जो बिल्कुल 1, 0, या -1 नहीं है, तो आप किसी को बग रिपोर्ट दर्ज करते हुए सोचते हैं कि भाषा में कुछ गड़बड़ है। यही कारण है कि हम दस्तावेज करते हैं कि हम गारंटी दे सकते हैं कि मूल्य होगा से कम, से अधिक, या के बराबर 0, और जरूरी नहीं 1, 0, और -1। - Sherif


ऑपरेटर टाइप करें

instanceof यह निर्धारित करने के लिए प्रयोग किया जाता है कि एक PHP चर एक निश्चित वर्ग की तत्काल वस्तु है या नहीं।

<?php
class mclass { }
class sclass { }
$a = new mclass;
var_dump($a instanceof mclass);
var_dump($a instanceof sclass);

उपर्युक्त उदाहरण आउटपुट होगा:

bool(true)
bool(false)

कारण: उदाहरण के ऊपर $a का एक वस्तु है mclass तो केवल एक का उपयोग करें mclass डेटा के साथ उदाहरण नहीं है sclass

विरासत के साथ उदाहरण

<?php 
class pclass { } 
class childclass extends pclass { } 
$a = new childclass; 
var_dump($a instanceof childclass); 
var_dump($a instanceof pclass);

उपर्युक्त उदाहरण आउटपुट होगा:

bool(true)
bool(true)

क्लोन के साथ उदाहरण

<?php 
class cloneable { } 
$a = new cloneable;
$b = clone $a; 
var_dump($a instanceof cloneable); 
var_dump($b instanceof cloneable);

उपर्युक्त उदाहरण आउटपुट होगा:

bool(true)
bool(true)

121



ऊपर 'इंटरफेस' के साथ उपरोक्त काम करता है। यह जांचने के लिए उपयोगी है कि एक विशेष इंटरफ़ेस उपलब्ध है। - Ryan Vincent


का एक सिंहावलोकन PHP में ऑपरेटरों:


लॉजिकल ऑपरेटर्स:

  • $ a && $ b: सही अगर दोनों $ और $ बी सत्य हैं।
  • $ ए || $ बी: सही अगर या तो $ एक या $ बी सही है।
  • $ एक xor $ बी: सही अगर या तो $ एक या $ बी सत्य है, लेकिन दोनों नहीं।
  • ! $ ए: सही अगर $ एक सत्य नहीं है।
  • $ ए और $ बी: सही अगर दोनों $ और $ बी सत्य हैं।
  • $ ए या $ बी: सही अगर या तो $ एक या $ बी सही है।

तुलना ऑपरेटर:

  • $ ए == $ बी: सही अगर $ j एक प्रकार के juggling के बाद $ बी के बराबर है।
  • $ ए === $ बी: सही अगर $ ए $ बी के बराबर है, और वे एक ही प्रकार के हैं।
  • $ ए! = $ बी: सही अगर $ j टाइपिंग के बाद $ b के बराबर नहीं है।
  • $ a <> $ b: सही अगर $ j टाइपिंग के बाद $ b के बराबर नहीं है।
  • $ ए! == $ बी: सही अगर $ ए $ बी के बराबर नहीं है, या वे एक ही प्रकार के नहीं हैं।
  • $ एक <$ बी : सही अगर $ ए कड़ाई से $ बी से कम है।
  • $ ए> $ बी : सही अगर $ ए कड़ाई से $ बी से अधिक है।
  • $ एक <= $ बी : सही अगर $ ए $ बी से कम या बराबर है।
  • $ ए> = $ बी : सही अगर $ ए $ बी से बड़ा या बराबर है।
  • $ एक <=> $ बी : $ एक से कम, बराबर, या शून्य से अधिक एक पूर्णांक क्रमशः $ बी से कम, बराबर या उससे अधिक है। PHP 7 के रूप में उपलब्ध है।
  • $ ए? $ बी: $ सी : अगर $ एक वापसी $ बी और $ सी वापसी (टर्नरी ऑपरेटर)
  • $ एक ?? $ ग : $ ए के समान? $ ए: $ सी (नल coalescing ऑपरेटर - PHP> = 7 की आवश्यकता है)

अंकगणितीय आपरेटर:

  • - $ एक : $ ए के विपरीत।
  • $ ए + $ बी : $ ए और $ बी का योग।
  • $ ए - $ बी : $ ए और $ बी का अंतर।
  • $ ए * $ बी : $ ए और $ बी का उत्पाद।
  • $ ए / $ बी : $ ए और $ बी का कोटिएंट।
  • $ एक% $ बी : $ बी द्वारा विभाजित $ के शेष।
  • $ एक ** $ बी : $ B'th पावर को $ एक बढ़ाने का परिणाम (PHP 5.6 में पेश किया गया)

बढ़ते / घटाने वाले ऑपरेटरों:

  • ++ $ एक : $ एक से बढ़ता है, फिर $ ए देता है।
  • एक ++ $ : $ एक देता है, फिर एक करके $ एक में वृद्धि करता है।
  • - $ एक : एक करके $ एक घटाता है, फिर $ ए देता है।
  • $ एक-- : $ एक देता है, फिर एक करके $ एक कमी करता है।

बिटवाई ऑपरेटर:

  • $ ए और $ बी : बिट्स जो $ ए और $ बी दोनों में सेट हैं सेट हैं।
  • $ ए | $ ख : बिट्स जो $ एक या $ बी में सेट हैं सेट हैं।
  • $ एक ^ $ बी : बिट्स जो $ एक या $ बी में सेट हैं लेकिन दोनों सेट नहीं हैं।
  • ~ $ ए : $ बिट में सेट बिट्स सेट नहीं हैं, और इसके विपरीत।
  • $ एक << $ बी : बाईं ओर $ एक $ बी चरणों के बिट्स को शिफ्ट करें (प्रत्येक चरण का मतलब है "दो से गुणा करें")
  • $ ए >> $ बी : दाईं ओर $ $ b चरणों के बिट्स को शिफ्ट करें (प्रत्येक चरण का अर्थ है "दो से विभाजित करें")

स्ट्रिंग ऑपरेटर:

  • $ ए $ ख : $ ए और $ बी की संगतता।

ऐरे ऑपरेटर:

  • $ ए + $ बी: $ ए और $ बी संघ।
  • $ एक == $ बी : सही अगर $ ए और $ बी में एक ही कुंजी / मूल्य जोड़े हैं।
  • $ ए === $ बी : सही अगर $ ए और $ बी में एक ही कुंजी / वैल्यू जोड़े एक ही क्रम में और उसी प्रकार के होते हैं।
  • $ ए! = $ बी : सही अगर $ ए $ बी के बराबर नहीं है।
  • $ a <> $ b : सही अगर $ ए $ बी के बराबर नहीं है।
  • $ ए! == $ बी : सही अगर $ ए $ बी के समान नहीं है।

असाइनमेंट ऑपरेटर:

  • $ ए = $ बी : $ बी का मूल्य $ ए को सौंपा गया है
  • $ ए + = $ बी : $ = $ एक + $ बी के समान
  • $ ए - = $ बी : $ एक = $ ए - $ बी के समान
  • $ ए * = $ बी : $ = $ एक * $ बी के समान
  • $ ए / = $ बी : $ एक = $ ए / $ बी के समान
  • $ एक% = $ बी : $ = $ एक% $ बी के समान
  • $ एक ** = $ बी : $ एक = $ एक ** $ बी के समान
  • $ ए। = $ बी : $ एक = $ ए के समान। $ ख
  • $ ए और = $ बी : $ = $ एक और $ बी के समान
  • $ ए | = $ बी : $ एक = $ ए के समान | $ ख
  • $ एक ^ = $ बी : $ एक = $ एक ^ $ बी के समान
  • $ एक << = $ बी : $ A = $ a << $ b के समान
  • $ ए >> = $ बी : $ एक = $ एक >> $ बी के समान

ध्यान दें

and ऑपरेटर और or ऑपरेटर ऑपरेटर ऑपरेटर की तुलना में कम प्राथमिकता है =

इस का मतलब है कि $a = true and false; के बराबर है ($a = true) and false

ज्यादातर मामलों में आप शायद उपयोग करना चाहते हैं && तथा ||, जो सी, जावा या जावास्क्रिप्ट जैसी भाषाओं से ज्ञात तरीके से व्यवहार करता है।


96





स्पेसशिप ऑपरेटर <=> (PHP 7 में जोड़ा गया)

के लिए उदाहरण <=> स्पेसशिप ऑपरेटर (PHP 7, स्रोत: PHP मैनुअल):

चर के तीन-तरफा तुलना के लिए इंटीजर, फ़्लोट्स, स्ट्रिंग्स, Arrays और ऑब्जेक्ट्स।

// Integers
echo 10 <=> 10; // 0
echo 10 <=> 20; // -1
echo 20 <=> 10; // 1

// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1

echo "a" <=> "aa"; // -1
echo "zz" <=> "aa"; // 1

// Arrays
echo [] <=> []; // 0
echo [1, 2, 3] <=> [1, 2, 3]; // 0
echo [1, 2, 3] <=> []; // 1
echo [1, 2, 3] <=> [1, 2, 1]; // 1
echo [1, 2, 3] <=> [1, 2, 4]; // -1

// Objects
$a = (object) ["a" => "b"]; 
$b = (object) ["a" => "b"]; 
echo $a <=> $b; // 0

$a = (object) ["a" => "b"]; 
$b = (object) ["a" => "c"]; 
echo $a <=> $b; // -1

$a = (object) ["a" => "c"]; 
$b = (object) ["a" => "b"]; 
echo $a <=> $b; // 1

// only values are compared
$a = (object) ["a" => "b"]; 
$b = (object) ["b" => "b"]; 
echo $a <=> $b; // 1

72



यह इसकी एक प्रति है उत्तर। - David Archibald
चेक php.net/manual/en/language.operators.comparison.php संदर्भ के लिए - rajangupta


{} घुंघराले ब्रेसिज़

और अंतिम पोस्ट के बारे में कुछ शब्द

$x[4] = 'd'; // it works
$x{4} = 'd'; // it works

$echo $x[4]; // it works
$echo $x{4}; // it works

$x[] = 'e'; // it works
$x{} = 'e'; // does not work

$x = [1, 2]; // it works
$x = {1, 2}; // does not work

echo "${x[4]}"; // it works
echo "${x{4}}"; // does not work

echo "{$x[4]}"; // it works
echo "{$x{4}}"; // it works

55



संपत्ति नामों के लिए {''} नोटेशन। echo $ movies-> फिल्म -> {'महान-रेखाएं'} -> रेखा; SimpleXMLElement में डेटा तक पहुंचने के लिए इस्तेमाल किया जा सकता है। शायद यह अन्य मामलों में भी इस्तेमाल किया जा सकता है। php.net/manual/en/simplexml.examples-basic.php - Andrei
हालांकि यह एक दिलचस्प खोज था - adelowo