Suche…


Teilstrings extrahieren / ersetzen

Einzelne Zeichen können mit der Array (eckige Klammer) -Syntax sowie der geschweiften Klammer-Syntax extrahiert werden. Diese beiden Syntaxen geben nur ein einzelnes Zeichen aus der Zeichenfolge zurück. Wenn mehr als ein Zeichen benötigt wird, ist eine Funktion erforderlich, z. B. substr

Strings sind wie alles in PHP 0 -indiziert.

$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'

Zeichenfolgen können auch einzeln mit derselben eckigen und geschweiften Klammer-Syntax geändert werden. Das Ersetzen mehrerer Zeichen erfordert eine Funktion, dh substr_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

String-Interpolation

Sie können die Interpolation auch verwenden, um eine Variable innerhalb eines Strings zu interpolieren ( einzufügen ). Interpolation funktioniert nur in doppelten Anführungszeichen und der Heredoc-Syntax.

$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."

Das komplexe (geschweifte) Syntaxformat bietet eine weitere Option, bei der Sie Ihre Variablen in geschweifte Klammern {} umschließen müssen. Dies kann hilfreich sein, wenn Variablen in Textinhalt eingebettet werden und mögliche Mehrdeutigkeiten zwischen Textinhalt und Variablen vermieden werden.

$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"

Die {} -Syntax interpoliert nur Variablen, die mit einem $ in einen String. Die {} -Syntax wertet keine beliebigen PHP-Ausdrücke aus.

// 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()}"

Die {} -Syntax wertet jedoch jeden Array-Zugriff, Eigenschaftszugriff und Funktions- / Methodenaufrufe für Variablen, Arrayelemente oder Eigenschaften aus:

// 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!"

Beachten Sie, dass das Dollarzeichen $ nach der öffnenden geschweiften Klammer { wie in den obigen Beispielen oder, wie in Perl oder Shell Script, davor angezeigt werden kann:

$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>"

Die Complex (curly) syntax wird nicht als solche bezeichnet, weil sie komplex ist, sondern weil sie die Verwendung von " komplexen Ausdrücken " zulässt. Lesen Sie mehr über die Complex (curly) syntax



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow