PHP
Formato de cadena
Buscar..
Extracción / sustitución de subcadenas.
Los caracteres individuales se pueden extraer mediante la sintaxis de matriz (corchete cuadrado) y la sintaxis de corchete. Estas dos sintaxis solo devolverán un solo carácter de la cadena. Si se necesita más de un carácter, se requerirá una función, es decir, substr
Las cadenas, como todo en PHP, están 0
-indexadas.
$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'
Las cadenas también se pueden cambiar de un carácter a la vez con la misma sintaxis de corchete y corsé. Reemplazar más de un carácter requiere una función, es decir, 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
Interpolación de cuerdas
También puede utilizar la interpolación para interpolar ( insertar ) una variable dentro de una cadena. La interpolación funciona solo en cadenas entre comillas y la sintaxis heredoc.
$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."
El formato de sintaxis compleja (rizado) proporciona otra opción que requiere que ajuste su variable entre llaves {}
. Esto puede ser útil cuando incrusta variables dentro del contenido textual y ayuda a prevenir una posible ambigüedad entre el contenido textual y las 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 sintaxis {}
solo interpola las variables que comienzan con $
en una cadena. La sintaxis {}
no evalúa expresiones PHP arbitrarias.
// 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()}"
Sin embargo, la sintaxis {}
evalúa el acceso a la matriz, el acceso a la propiedad y las llamadas a funciones / métodos en variables, elementos de la matriz o propiedades:
// 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!"
Observe que el signo de $
dólar puede aparecer después de la llave de apertura {
como en los ejemplos anteriores, o, como en Perl o Shell Script, puede aparecer delante de él:
$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
no se llama como tal porque es compleja, sino más bien porque permite el uso de ' expresiones complejas '. Leer más sobreComplex (curly) syntax