PHP 教程 在线

564PHP echo/print

常见的输出语句

echo(): 可以一次输出多个值,多个值之间用逗号分隔。echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用。

print(): 函数print()打印一个值(它的参数),如果字符串成功显示则返回true,否则返回false。

print_r(): 可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Array开头。但print_r()输出布尔值和NULL的结果没有意义,因为都是打印"\n"。因此用var_dump()函数更适合调试。

var_dump(): 判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型。此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

563PHP 变量

  • 1、定义在函数外部的就是全局变量,它的作用域从定义处一直到文件结尾。
  • 2、函数内定义的变量就是局部变量,它的作用域为函数定义范围内。
  • 3、函数之间存在作用域互不影响。
  • 4、函数内访问全局变量需要 global 关键字或者使用 $GLOBALS[index] 数组

在 php 中函数是有独立的作用域,所以局部变量会覆盖全局变量,即使局部变量中没有全局变量相同的变量,也会被覆盖。如下:

<?php
$a=5;
$b=3;
function t()
{
    echo $a-$b; // 输出 0
}
t();
?>

要想在函数中直接使用全局变量可以通过 global 关键字声明或者通过 php 中自定义的 $GLOBALS 数组获取:

<?php
$a=5;
$b=3;
function t1()
{  
    global $a,$b;
    echo $a-$b;  // 输出 2
}
t1();

echo PHP_EOL;

function t2()
{
    echo $GLOBALS['a']-$GLOBALS['b'];  // 输出 2
}
t2();
?>