खोज…


सबस्ट्रिंग को निकालना / बदलना

सरणी (वर्ग ब्रेस) सिंटैक्स के साथ-साथ घुंघराले ब्रेस सिंटैक्स का उपयोग करके एकल वर्ण निकाले जा सकते हैं। ये दो सिंटैक्स केवल स्ट्रिंग से एक एकल वर्ण लौटाएंगे। यदि एक से अधिक वर्णों की आवश्यकता है, तो एक फंक्शन की आवश्यकता होगी, अर्थात- रूट

PHP में सब कुछ की तरह स्ट्रिंग्स, 0 -indexed हैं।

$foo = 'Hello world';

$foo[6]; // returns 'w'
$foo{6}; // also returns 'w'

substr($foo, 6, 1); // also returns 'w'
substr($foo, 6, 2); // returns 'wo'

एक ही वर्ग ब्रेस और घुंघराले ब्रेस सिंटैक्स का उपयोग करके स्ट्रिंग्स को एक बार में एक वर्ण बदला जा सकता है। एक से अधिक वर्णों को प्रतिस्थापित करने के लिए फ़ंक्शन की आवश्यकता होती है, अर्थात- root_replace

$foo = 'Hello world';

$foo[6] = 'W'; // results in $foo = 'Hello World'
$foo{6} = 'W'; // also results in $foo = 'Hello World'

substr_replace($foo, 'W', 6, 1); // also results in $foo = 'Hello World'
substr_replace($foo, 'Whi', 6, 2); // results in 'Hello Whirled'
// note that the replacement string need not be the same length as the substring replaced

स्ट्रिंग इंटरपोलेशन

आप किसी स्ट्रिंग के भीतर एक वेरिएबल को इंटरपोलेट ( सम्मिलित ) करने के लिए प्रक्षेप का उपयोग कर सकते हैं। इंटरपोलेशन डबल उद्धृत स्ट्रिंग्स और केवल हेरेडोक सिंटैक्स में काम करता है।

$name = 'Joel';

// $name will be replaced with `Joel`
echo "<p>Hello $name, Nice to see you.</p>";
#                ↕
#>   "<p>Hello Joel, Nice to see you.</p>"

// Single Quotes: outputs $name as the raw text (without interpreting it)
echo 'Hello $name, Nice to see you.'; # Careful with this notation
#> "Hello $name, Nice to see you."

जटिल (घुंघराले) सिंटैक्स प्रारूप एक और विकल्प प्रदान करता है जिसके लिए आवश्यक है कि आप अपने चर को घुंघराले ब्रेस के भीतर लपेटें {} । यह उपयोगी हो सकता है जब पाठ्य सामग्री के भीतर चर को एम्बेड करना और पाठ्य सामग्री और चर के बीच संभावित अस्पष्टता को रोकने में मदद करना।

$name = 'Joel';

// Example using the curly brace syntax for the variable $name
echo "<p>We need more {$name}s to help us!</p>";
#> "<p>We need more Joels to help us!</p>"

// This line will throw an error (as `$names` is not defined)
echo "<p>We need more $names to help us!</p>";
#> "Notice: Undefined variable: names"

{} सिंटैक्स केवल एक स्ट्रिंग में $ साथ शुरू होने वाले चर को प्रक्षेपित करता है। {} सिंटैक्स मनमाने ढंग से PHP के भावों का मूल्यांकन नहीं करता है

// Example tying to interpolate a PHP expression
echo "1 + 2 = {1 + 2}";
#> "1 + 2 = {1 + 2}"

// Example using a constant
define("HELLO_WORLD", "Hello World!!");
echo "My constant is {HELLO_WORLD}";
#> "My constant is {HELLO_WORLD}"

// Example using a function
function say_hello() {
    return "Hello!";
};
echo "I say: {say_hello()}";
#> "I say: {say_hello()}"

हालाँकि, {} सिंटैक्स किसी भी ऐरे एक्सेस, प्रॉपर्टी एक्सेस और फंक्शन / मेथड कॉल को वेरिएबल्स, एरे एलिमेंट्स या प्रॉपर्टीज का मूल्यांकन करता है:

// Example accessing a value from an array — multidimensional access is allowed
$companions = [0 => ['name' => 'Amy Pond'], 1 => ['name' => 'Dave Random']];
echo "The best companion is: {$companions[0]['name']}";
#> "The best companion is: Amy Pond"

// Example of calling a method on an instantiated object
class Person {
  function say_hello() {
    return "Hello!";
  }
}

$max = new Person();

echo "Max says: {$max->say_hello()}";
#> "Max says: Hello!"

// Example of invoking a Closure — the parameter list allows for custom expressions
$greet = function($num) {
    return "A $num greetings!";
};
echo "From us all: {$greet(10 ** 3)}";
#> "From us all: A 1000 greetings!"

ध्यान दें कि उद्घाटन के बाद डॉलर $ साइन दिखाई दे सकता है { उपर्युक्त उदाहरणों के अनुसार, या, पर्ल या शेल स्क्रिप्ट की तरह, इससे पहले प्रदर्शित हो सकते हैं:

$name = 'Joel';

// Example using the curly brace syntax with dollar sign before the opening curly brace
echo "<p>We need more ${name}s to help us!</p>";
#> "<p>We need more Joels to help us!</p>"

Complex (curly) syntax ऐसा नहीं कहा जाता है क्योंकि यह जटिल है, बल्कि इसलिए कि यह ' जटिल अभिव्यक्तियों ' के उपयोग की अनुमति देता है। Complex (curly) syntax बारे में और पढ़ें



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow