una recorrer length extraer escapar concatenar comillas caracteres cadena array php string

length - recorrer string php



ToString() equivalente en PHP (23)

¿Cómo convierto el valor de una variable de PHP a cadena?

Estaba buscando algo mejor que concatenar con una cadena vacía:

$myText = $myVar . '''';

Como el método ToString() en Java o .NET.


¿Cómo convierto el valor de una variable de PHP a cadena?

Un valor se puede convertir en una cadena usando la conversión (string) o la función strval() . (Edit: Como Thomas también declaró).

También se debe convertir automáticamente para ti cuando lo uses como una cadena.


Además de la respuesta dada por Thomas G. Mayfield:

Si sigue el enlace al manual de lanzamiento de cadenas, hay un caso especial que es muy importante de entender:

(string) cast es preferible, especialmente si su variable $ a es un objeto, ya que PHP seguirá el protocol conversión según su modelo de objeto llamando al método mágico __toString () (si está definido en la clase de la cual se crea una instancia de $ a ).

PHP hace algo similar a

function castToString($instance) { if (is_object($instance) && method_exists($instance, ''__toString'')) { return call_user_func_array(array($instance, ''__toString'')); } }

La operación de conversión (cadena) es una técnica recomendada para la programación PHP5 + que hace que el código sea más orientado a objetos. En mi opinión, este es un buen ejemplo de similitud de diseño (diferencia) con otros lenguajes OOP como Java / C # / etc., Es decir, en su propia forma especial de PHP (siempre que sea por el bien o por el valor).


Algunos, si no todos, los métodos anteriores fallan cuando la variable de cadena deseada tiene un cero inicial, es decir, 077543, un intento de convertir dicha variable no logra obtener la cadena deseada porque la variable se convierte a base 8 (octal) .

Todo esto hará que $str tenga un valor de 32611.

$no = 077543 $str = (string)$no; $str = "$no"; $str = print_r($no,true); $str = strval($no); $str = settype($no, "integer");


Como han mencionado otros, los objetos necesitan un método __toString para convertirse en una cadena. Un objeto que no define ese método todavía puede producir una representación de cadena usando la función spl_object_hash .

Esta función devuelve un identificador único para el objeto. Esta identificación se puede usar como una clave hash para almacenar objetos o para identificar un objeto, siempre que el objeto no se destruya. Una vez que se destruye el objeto, su hash puede reutilizarse para otros objetos.

Tengo una clase de Objeto base con un método __toString que por defecto llama md5(spl_object_hash($this)) para hacer que la salida sea claramente única, ya que la salida de spl_object_hash puede parecer muy similar entre los objetos.

Esto es particularmente útil para depurar el código donde una variable se inicializa como un Objeto y más adelante en el código se sospecha que ha cambiado a un Objeto diferente. Simplemente haciendo eco de las vars al registro puede revelar el cambio del objeto hash (o no).


Creo que vale la pena mencionar que puedes capturar cualquier salida (como print_r , var_dump ) en una variable usando el búfer de salida:

<?php ob_start(); var_dump($someVar); $result = ob_get_clean(); ?>

Gracias a: https://.com/a/139491/987864


Esto se hace con encasillado:

$strvar = (string) $var; // Casts to string echo $var; // Will cast to string implicitly var_dump($var); // Will show the true type of the variable

En una clase, puede definir qué se __toString utilizando el método mágico __toString . A continuación se muestra un ejemplo:

class Bottles { public function __toString() { return ''Ninety nine green bottles''; } } $ex = new Bottles; var_dump($ex, (string) $ex); // Returns: instance of Bottles and "Ninety nine green bottles"

Algunos ejemplos más de casting de tipos:

$i = 1; // int 1 var_dump((int) $i); // bool true var_dump((bool) $i); // string "1" var_dump((string) 1);


La documentación dice que también puedes hacer:

$str = "$foo";

Es lo mismo que el reparto, pero creo que se ve más bonito.

Fuente:


Las comillas dobles también deberían funcionar ... deberían crear una cadena, luego APENDAR / INSERTAR el valor de STRING de $ myVar entre 2 cadenas vacías.


Otra opción es usar la función incorporada settype :

<?php $foo = "5bar"; // string $bar = true; // boolean settype($foo, "integer"); // $foo is now 5 (integer) settype($bar, "string"); // $bar is now "1" (string) ?>

En realidad, esto realiza una conversión en la variable a diferencia del encasillado y le permite tener una forma general de convertir a múltiples tipos.


PHP se escribe dinámicamente, por lo que, como dijo Chris Fournier, "Si lo usas como una cadena, se convierte en una cadena". Si está buscando más control sobre el formato de la cadena, entonces printf es su respuesta.


Para objetos, es posible que no pueda utilizar el operador de yeso. En su lugar, uso el método json_encode() .

Por ejemplo, lo siguiente dará salida al contenido del registro de errores:

error_log(json_encode($args));


Para primitivas, simplemente use (string)$var o imprima esta variable inmediatamente. PHP es un lenguaje tipificado dinámicamente y la variable se convertirá en cadena sobre la marcha.

Si desea convertir objetos en cadenas, deberá definir el método __toString() que devuelve la cadena. Este método está prohibido lanzar excepciones.


Ponerlo entre comillas dobles debería funcionar:

$myText = "$myVar";


Pruebe este pequeño pero extraño enfoque de trabajo para convertir la parte textual de stdClass al tipo de cadena:

$my_std_obj_result = $SomeResponse->return->data; //specific to object/implementation $my_string_result = implode ((array)$my_std_obj_result); //do conversion


Puedes usar el encasillado:

$var = (string)$varname;

o StringValue:

$var = strval($varname);

o SetType:

$success = settype($varname, ''string''); // $varname itself becomes a string

Todos ellos trabajan para la misma cosa en términos de Tipo-Malabarismo.


Puedes usar los operadores de casting :

$myText = (string)$myVar;

Hay más detalles para el lanzamiento y conversión de cadenas en la sección Cadenas del manual de PHP, incluido el manejo especial para booleanos y nulos.


Puedes usar también la función var_export php.


Si está convirtiendo algo diferente a tipos simples como enteros o booleanos, tendría que escribir su propia función / método para el tipo que está intentando convertir, de lo contrario PHP solo imprimirá el tipo (como una matriz, GoogleSniffer , o Bidet).


Siempre puede crear un método llamado .ToString ($ in) que devuelve

$in . '''';


Usted está buscando strval :

string strval ( mixed $var )

Obtener el valor de cadena de una variable. Consulte la documentación en la cadena para obtener más información sobre la conversión a cadena.

Esta función no realiza ningún formateo en el valor devuelto. Si está buscando una forma de dar formato a un valor numérico como una cadena, consulte sprintf () o number_format ().


Utilice print_r :

$myText = print_r($myVar,true);

También puedes usar como

$myText = print_r($myVar,true)."foo bar";

esto establecerá $myText a una cadena, como:

array ( 0 => ''11'', )foo bar

Use var_export para obtener un poco más de información (con tipos de variable, ...):

$myText = var_export($myVar,true);



$parent_category_name = "new clothes & shoes" ; //TO make it to string option one $parent_category = strval($parent_category_name); //Or make it string my concatenating it with ''new clothes & shoes'' //useful for database queries $parent_category = "''".strval($parent_category_name)."''";