que ejemplo convert php string

php - ejemplo - Cómo convertir booleano a cadena



convert string to boolean javascript (14)

¿Por qué no haces esto ?:

if ($res) { $converted_res = "true"; } else { $converted_res = "false"; }

Tengo una variable booleana que quiero convertir a una cadena

$res = true;

Necesito que el valor convertido también esté en el formato "true" "false" no "0" "1"

$converted_res = "true"; $converted_res = "false";

He intentado:

$converted_res = string($res); $converted_res = String($res);

pero me dice que string y String no son funciones reconocidas. ¿Cómo convierto este booleano a una cadena en el formato "verdadero" o "falso" en php?


Esto también funciona para cualquier tipo de valor:

$a = true; echo $a // outputs: 1 echo value_To_String( $a ) // outputs: true

código:

function valueToString( $value ){ return ( !is_bool( $value ) ? $value : ($value ? ''true'' : ''false'' ) ); }


La función var_export devuelve una representación de cadena de una variable, por lo que podría hacer esto:

var_export($res, true);

El segundo argumento le dice a la función que devuelva la cadena en lugar de repetirla.


Las otras soluciones aquí tienen salvedades (aunque abordan la cuestión que nos ocupa). Si (1) realiza un bucle sobre tipos mixtos o (2) desea una solución genérica que puede exportar como una función o incluirla en sus utilidades, ninguna de las otras soluciones aquí funcionará.

La solución más simple y más autoexplicativa es:

// simplest, most-readable if (is_bool($res) { $res = $res ? ''true'' : ''false''; } // same as above but written more tersely $res = is_bool($res) ? ($res ? ''true'' : ''false'') : $res; // Terser still, but completely unnecessary function call and must be // commented due to poor readability. What is var_export? What is its // second arg? Why are we exporting stuff? $res = is_bool($res) ? var_export($res, 1) : $res;

Pero la mayoría de los desarrolladores que leen tu código necesitarán un viaje a http://php.net/var_export para entender qué hace var_export y cuál es el segundo param.

1. var_export

Funciona para la entrada boolean pero también convierte todo lo demás en una string .

// OK var_export(false, 1); // ''false'' // OK var_export(true, 1); // ''true'' // NOT OK var_export('''', 1); // ''/'/''' // NOT OK var_export(1, 1); // ''1''

2. ($res) ? ''true'' : ''false''; ($res) ? ''true'' : ''false'';

Funciona para entrada booleana pero convierte todo lo demás (enteros, cadenas) en verdadero / falso.

// OK true ? ''true'' : ''false'' // ''true'' // OK false ? ''true'' : ''false'' // ''false'' // NOT OK '''' ? ''true'' : ''false'' // ''false'' // NOT OK 0 ? ''true'' : ''false'' // ''false''

3. json_encode()

Los mismos problemas que var_export y probablemente sean peores ya que json_encode no puede saber si la cadena true tenía la intención de ser una cadena o un booleano.


No soy partidario de la respuesta aceptada, ya que convierte todo lo que se evalúa como falso en "false" no solo booleano y vis-versa.

De todos modos, aquí está mi respuesta OTT, utiliza la función var_export .

var_export funciona con todos los tipos de variables, excepto resource , he creado una función que realizará un cast normal a string ( (string) ), un cast estricto ( var_export ) y una verificación de tipo, dependiendo de los argumentos proporcionados.

if(!function_exists(''to_string'')){ function to_string($var, $strict = false, $expectedtype = null){ if(!func_num_args()){ return trigger_error(__FUNCTION__ . ''() expects at least 1 parameter, 0 given'', E_USER_WARNING); } if($expectedtype !== null && gettype($var) !== $expectedtype){ return trigger_error(__FUNCTION__ . ''() expects parameter 1 to be '' . $expectedtype .'', '' . gettype($var) . '' given'', E_USER_WARNING); } if(is_string($var)){ return $var; } if($strict && !is_resource($var)){ return var_export($var, true); } return (string) $var; } } if(!function_exists(''bool_to_string'')){ function bool_to_string($var){ return func_num_args() ? to_string($var, true, ''boolean'') : to_string(); } } if(!function_exists(''object_to_string'')){ function object_to_string($var){ return func_num_args() ? to_string($var, true, ''object'') : to_string(); } } if(!function_exists(''array_to_string'')){ function array_to_string($var){ return func_num_args() ? to_string($var, true, ''array'') : to_string(); } }


Otra forma de hacerlo: json_encode( booleanValue )

echo json_encode(true); // string "true" echo json_encode(false); // string "false" // null !== false echo json_encode(null); // string "null"


Solo quería actualizar, en PHP> = 5.50 puedes hacer boolval() para hacer lo mismo

Referencia aquí .


UTILIZAR filter_var()

filter_var(''true'', FILTER_VALIDATE_BOOLEAN); // true filter_var(1, FILTER_VALIDATE_BOOLEAN); // true filter_var(''1'', FILTER_VALIDATE_BOOLEAN); // true filter_var(''on'', FILTER_VALIDATE_BOOLEAN); // true filter_var(''yes'', FILTER_VALIDATE_BOOLEAN); // true filter_var(''false'', FILTER_VALIDATE_BOOLEAN); // false filter_var(0, FILTER_VALIDATE_BOOLEAN); // false filter_var(''0'', FILTER_VALIDATE_BOOLEAN); // false filter_var(''off'', FILTER_VALIDATE_BOOLEAN); // false filter_var(''no'', FILTER_VALIDATE_BOOLEAN); // false filter_var(''ANYthingELSE'', FILTER_VALIDATE_BOOLEAN); // false filter_var('''', FILTER_VALIDATE_BOOLEAN); // false filter_var(null, FILTER_VALIDATE_BOOLEAN); // false


Utiliza strval () o (cadena) para convertir a cadena en PHP. Sin embargo, eso no convierte booleano en la ortografía real de "verdadero" o "falso", por lo que debe hacerlo usted mismo. Aquí hay una función de ejemplo:

function strbool($value) { return $value ? ''true'' : ''false''; } echo strbool(false); // "false" echo strbool(true); // "true"



boolval() funciona para tablas complicadas donde las variables de declaración y la adición de bucles y filtros no funcionan. Ejemplo:

$result[$row[''name''] . "</td><td>" . (boolval($row[''special_case'']) ? ''True'' : ''False'') . "</td><td>" . $row[''more_fields''] = $tmp

donde $tmp es una clave utilizada para transponer otros datos. Aquí, quería que la tabla muestre "Sí" para 1 y nada para 0, así que se usa (boolval($row[''special_case'']) ? ''Yes'' : '''') .


$converted_res = ($res) ? ''true'' : ''false'';


$converted_res = isset ( $res ) ? ( $res ? ''true'' : ''false'' ) : ''false'';


function ToStr($Val=null,$T=0){ return is_string($Val)?"$Val" : ( is_numeric($Val)?($T?"$Val":$Val) : ( is_null($Val)?"NULL" : ( is_bool($Val)?($Val?"TRUE":"FALSE") : ( is_array($Val)?@StrArr($Val,$T) : false ) ) ) ); } function StrArr($Arr,$T=0) { $Str=""; $i=-1; if(is_array($Arr)) foreach($Arr AS $K => $V) $Str.=((++$i)?", ":null).(is_string($K)?"/"$K/"":$K)." => ".(is_string($V)?"/"$V/"":@ToStr($V,$T+1)); return "array( ".($i?@ToStr($Arr):$Str)." )".($T?null:";"); } $A = array(1,2,array(''a''=>''b''),array(''a'',''b'',''c''),true,false,ToStr(100)); echo StrArr($A); // OR ToStr($A) // OR ToStr(true) // OR StrArr(true)