php 將一個變量轉爲字符串

/**
 * 將一個變量轉爲字符串
 *  float使用var_export得到的字符串不準確
 *  resource使用var_export得到的是null
 * @param $variable
 * @return string
 */
function variable_to_string($variable)
{
    return is_float($variable)
        ?
        (string)$variable
        :
        (
            is_resource($variable)
            ?
            "'resource of type'"
            :
            var_export($variable, true)
        );
}

// int
$a = 4;
var_dump(variable_to_string($a));
/**
 * 輸出:string(1) "4"
 */

// float
$a = 100.4;
var_dump(variable_to_string($a));
/**
 * 輸出:string(5) "100.4"
 */

// string
$a = 'abcdefg';
var_dump(variable_to_string($a));
/**
 * 輸出:string(9) "'abcdefg'"
 */

// array
$a = ['a' => 'a', 'b' => 'b'];
var_dump(variable_to_string($a));
/**
 * 輸出:string(37) "array (
 *  'a' => 'a',
 *  'b' => 'b',
 * )"
 */

// object
$a = new stdClass();
$a->a = 'a';
$a->b = 'b';
var_dump(variable_to_string($a));
/**
 * 輸出:string(61) "stdClass::__set_state(array(
 *  'a' => 'a',
 *  'b' => 'b',
 * ))"
 */

// bool
$a = false;
var_dump(variable_to_string($a));
/**
 * 輸出:string(5) "false"
 */

// null
$a = null;
var_dump(variable_to_string($a));
/**
 * 輸出:string(4) "NULL"
 */

// resource
$a = fopen('./test.log', 'wb+');
var_dump(variable_to_string($a));
/**
 * 輸出:string(18) "'resource of type'"
 */
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章