Zoeken…


Substrings uitpakken / vervangen

Enkele tekens kunnen worden geëxtraheerd met de syntaxis van de array (vierkante haakjes) en de syntaxis van de accolades. Deze twee syntaxis retourneren slechts één teken uit de tekenreeks. Als er meer dan één teken nodig is, is een functie vereist, bijvoorbeeld substr

Strings, zoals alles in PHP, zijn 0 geïndexeerd.

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

Tekenreeksen kunnen ook één teken per keer worden gewijzigd met dezelfde vierkante accolade en accoladesynchronisatie. Het vervangen van meer dan één karakter vereist een functie, ie- 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

Stringinterpolatie

U kunt ook interpolatie gebruiken om een variabele binnen een string te interpoleren (in te voegen ). Interpolatie werkt alleen met dubbele aanhalingstekens en de heredoc-syntaxis.

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

De complexe (gekrulde) syntaxisindeling biedt een andere optie die vereist dat u uw variabele tussen accolades plaatst {} . Dit kan handig zijn bij het insluiten van variabelen in tekstuele inhoud en het helpen voorkomen van mogelijke dubbelzinnigheid tussen tekstuele inhoud en variabelen.

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

De syntaxis {} interpoleert alleen variabelen beginnend met een $ in een string. De {} syntax niet willekeurig PHP expressies te evalueren.

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

De syntaxis {} evalueert echter elke arraytoegang, eigenschapstoegang en functie / methode-aanroepen op variabelen, arrayelementen of eigenschappen:

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

Merk op dat het dollarteken $ na de eerste accolade { kan verschijnen zoals de bovenstaande voorbeelden, of, zoals in Perl of Shell Script, ervoor kan verschijnen:

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

De Complex (curly) syntax wordt niet als zodanig genoemd omdat het complex is, maar eerder omdat het gebruik van ' complexe uitdrukkingen ' mogelijk maakt. Lees meer over Complex (curly) syntax



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow