string extraer - Curly llaves en cadena en PHP




caracteres una (5)

También me pareció útil acceder a los atributos de los objetos donde los nombres de los atributos varían según algún iterador. Por ejemplo, he usado el siguiente patrón para un conjunto de períodos de tiempo: hora, día, mes.

$periods=array('hour', 'day', 'month');
foreach ($periods as $period)
{
    $this->{'value_'.$period}=1;
}

Este mismo patrón también se puede usar para acceder a los métodos de clase. Simplemente crea el nombre del método de la misma manera, usando cadenas y variables de cadena.

Podría argumentar fácilmente que solo use una matriz para el almacenamiento de valores por período. Si esta aplicación fuera solo PHP, estaría de acuerdo. Uso este patrón cuando los atributos de la clase se asignan a campos en una tabla de base de datos. Si bien es posible almacenar matrices en una base de datos mediante serialización, es ineficiente e inútil si los campos individuales deben indexarse. A menudo agrego una matriz de nombres de campo, codificados por el iterador, para obtener lo mejor de ambos mundos.

class timevalues
{
                             // Database table values:
    public $value_hour;      // maps to values.value_hour
    public $value_day;       // maps to values.value_day
    public $value_month;     // maps to values.value_month
    public $values=array();

    public function __construct()
    {
        $this->value_hour=0;
        $this->value_day=0;
        $this->value_month=0;
        $this->values=array(
            'hour'=>$this->value_hour,
            'day'=>$this->value_day,
            'month'=>$this->value_month,
        );
    }
}

¿Cuál es el significado de { } (llaves) en literales de cadena en PHP?


Ejemplo:

$number = 4;
print "You have the {$number}th edition book";
//output: "You have the 4th edition book";

Sin llaves, PHP intentaría encontrar una variable llamada $numberth , ¡eso no existe!


aquí está el código que obtuve de un plugin de WordPress

$data = $wpdb->get_results("select * from {$wpdb->prefix}download_monitor_files");

Esta es una técnica realmente útil para formatear cadenas complejas.


En cuanto a mí, las llaves sirven como una sustitución de la concatenación, son más rápidas de escribir y el código se ve más limpio. Recuerde utilizar comillas dobles ("") ya que su contenido es analizado por PHP, porque entre comillas simples ('') obtendrá el nombre literal de la variable provista:

<?php

 $a = '12345';

// This works:
 echo "qwe{$a}rty"; // qwe12345rty, using braces
 echo "qwe" . $a . "rty"; // qwe12345rty, concatenation used

// Does not work:
 echo 'qwe{$a}rty'; // qwe{$a}rty, single quotes are not parsed
 echo "qwe$arty"; // qwe, because $a became $arty, which is undefined

?>

Tal vez podrías usar algo como esto:

<?php
    findWord('Test all OK');

    function findWord($text) {
        if (strstr($text, 'ok')) {
            echo 'Found a word';
        }
        else
        {
            echo 'Did not find a word';
        }
    }
?>




php string