PHP 输出方式汇总

echo

  1. 输出一个或多个字符串(输出其他格式会转换成字符串,对象输出会提示错误)

  2. 是语言结构,不是函数

  3. 可以传递多个参数

  4. 无返回值

    
    echo "hello world\n";
    // hello world
    
    $a = "hello";
    echo "$a world\n";
    
    // hello world
    helloworld
    $b = "world";
    echo $a,$b."\n";
    
    //helloworld
    
    $c = [1,2,3];
    echo $c."\n";
    
    //Array
    
    class Test
    {
        public function d()
        {
            //code
        }
    }
    
    $d = new Test();
    echo $d;
    
    //Recoverable fatal error: Object of class Test could not be converted to string
    

print

  1. 和echo 区别, 输出一个字符串

  2. 返回值1

    
    print "hello world";
    //hello world
    
    $a = 'hello';
    print $a." world";
    //hello world
    
    echo print $a;
    //1
    

print_r

  1. 返回人类易读的信息

  2. 可以接收表达式

  3. print_r ( mixed $expression [, bool $return = FALSE ] ) ,$return 是true 直接返回,而不是输出内容

  4. 如果输入的内容是 string、 integer 或 float,会直接输出值本身。 如果输入的内容是 array,展示的格式会显示数组的键和包含的元素。object 也类似。当 return 参数设置成 TRUE,本函数会返回 string 格式。否则返回 TRUE

  5. 当使用了return 参数时,本函数使用其内部输出缓冲,因此不能在 ob_start() 回调函数的内部使用。

    
    $a = 'hello word\n';
    print_r($a);
    // hello world
    
    $b = [1,2,3];
    print_r($b);
    // Array
    // (
    //     [0] => 1
    //     [1] => 2
    //     [2] => 3
    // )
    
    $c = 1;
    print_r($c, true);
    // 空
    var_dump(print_r($c, true));
    // string(1) "1"
    

printf

  1. 返回输出字符串的长度

  2. vprintf 格式化输出字符串,只是接收的参数是数组 vprintf ( string $format , array $args )

  3. sprintf 格式化字符串输出,可以接收多个参数,sprintf ( string $format [, mixed $... ] ) : string

    
    printf("hello %s", 'world').PHP_EOL;
    //hello world
    
    echo printf("hello %s", 'world').PHP_EOL;
    //返回字符串长度 11
    
    sprintf("hello %s %d", "world", 1).PHP_EOL;
    //空
    
    echo sprintf("hello %s %d", "world", 1).PHP_EOL;
    // hello world 1
    
    vsprintf("hello %s %d", ['world', 1]).PHP_EOL;
    //空
    
    echo vsprintf("hello %s %d", ['world', 1]).PHP_EOL;
    //hello world 1
    

var_dump,var_export

  1. 功能和print_r类似

  2. 主要区别是添加了具体的返回值类型

  3. var_dump没有返回值

  4. var_export可以通过第二个参数设置true ,有返回值

    
    $a = [1,'a', 1.23];
    var_dump($a);
    // array(3) {
    //     [0]=>
    //     int(1)
    //     [1]=>
    //     string(1) "a"
    //     [2]=>
    //     float(1.23)
    //   }
    
    $b = [1,'a', 1.23];
    var_export($b);
    // array (
    //     0 => 1,
    //     1 => 'a',
    //     2 => 1.23,
    //   )
    
    $c = var_export($b);
    print_r($c);
    // array (
    //     0 => 1,
    //     1 => 'a',
    //     2 => 1.23,
    //   )
    

你可能感兴趣的:(php)