Recherche…


Extraction / remplacement de sous-chaînes

Les caractères uniques peuvent être extraits en utilisant la syntaxe de tableau (accolade carrée) ainsi que la syntaxe des accolades. Ces deux syntaxes ne renverront qu'un seul caractère de la chaîne. Si plus d'un caractère est nécessaire, une fonction sera requise, ie- substr

Les chaînes, comme tout ce qui est en PHP, sont indexées à 0 .

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

Les chaînes peuvent également être changées d'un caractère à la fois en utilisant la même syntaxe d'accolade carrée et d'accolade. Le remplacement de plusieurs caractères nécessite une fonction, 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

Interpolation de chaîne

Vous pouvez également utiliser l'interpolation pour interpoler ( insérer ) une variable dans une chaîne. L'interpolation fonctionne avec des chaînes entre guillemets et la syntaxe heredoc uniquement.

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

Le format de syntaxe complexe (bouclé) fournit une autre option qui nécessite que vous encapsuliez votre variable entre accolades {} . Cela peut être utile lors de l'intégration de variables dans un contenu textuel et pour éviter toute ambiguïté entre le contenu textuel et les variables.

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

La syntaxe {} interpole uniquement les variables commençant par $ dans une chaîne. La syntaxe {} n'évalue pas les expressions PHP arbitraires.

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

Cependant, la syntaxe {} évalue tout accès au tableau, accès aux propriétés et appels de fonctions / méthodes sur des variables, des éléments de tableau ou des propriétés:

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

Notez que le signe dollar $ peut apparaître après l'accolade ouvrante { comme les exemples ci-dessus, ou, comme dans Perl ou Shell Script, peuvent apparaître devant lui:

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

La Complex (curly) syntax n’est pas appelée en tant que telle car elle est complexe, mais plutôt parce qu’elle permet l’utilisation d’ expressions complexes . En savoir plus sur la Complex (curly) syntax



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow