一.语法
- PHP 脚本以 <?php 开始,以 ?> 结束:
PHP 文件的默认文件扩展名是 ".php"。
PHP 文件通常包含
HTML 标签和一些 PHP 脚本代码。
例:
<!DOCTYPE html>
<html>
<body>
<h1>My first PHP page</h1>
<?php
echo "Hello World!";
//输出文本的基础指令:echo 和 print。
//每个代码行都必须以分号结束
// 这是 PHP 单行注释
/*
这是
PHP 多行
注释
*/
?>
</body>
</html>
2.PHP 变量
1).规则:
变量以 $ 符号开始,后面跟着变量的名称
变量名必须以字母或者下划线字符开始
变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ )
变量名不能包含空格
变量名是区分大小写的($y 和 $Y 是两个不同的变量)
PHP 语句和 PHP 变量都是区分大小写的。
例:
<?php
$txt="Hello world!"; //当赋一个文本值给变量时,请在文本值两侧加上引号
$x=5;
$y=10.5;
?>
2).PHP 变量作用域
变量的作用域是脚本中变量可被引用/使用的部分。
PHP 有四种不同的变量作用域:
- local 局部作用域--在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问
- global 全局变量的作用域--定义在函数外部,函数内访问全局变量可用global关键字或者$GLOBALS[index]数组中,index 保存变量的名称
- static(静态的)static 作用域 --当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。要做到这一点,请在您第一次声明变量时使用 static 关键字
- parameter(参数)参数作用域--参数是通过调用代码将值传递给函数的局部变量。关于局部变量和全局变量的优先级,因为在PHP中函数都有自己单独的作用域,所以在局部变量的优先级要大于全局变量(在你不声明这个变量之前),声明之后此变量就变成了局部变量如果修改值那么全局变量的值也会改变。
例:
<?php
$x=5; // 全局变量
function myTest() //创建函数
{
$y=10; // 局部变量
echo "<p>测试函数内变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";
}
myTest(); //调用函数
echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";
?>
测试函数内变量:
变量 x 为:
变量 y 为: 10
测试函数外变量:
变量 x 为: 5
变量 y 为:
当我们调用myTest()函数并输出两个变量的值, 函数将会输出局部变量 $y 的值,但是不能输出 $x 的值,因为 $x 变量在函数外定义,无法在函数内使用,如果要在一个函数中访问一个全局变量,需要使用 global 关键字。
然后我们在myTest()函数外输出两个变量的值,函数将会输出全局变量 $x 的值,但是不能输出 $y 的值,因为 $y 变量在函数中定义,属于局部变量。
- PHP 将所有全局变量存储在一个名为 $GLOBALS[index]的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
例:
<?php
$x=5;
$y=10;
function myTest() //创建函数
{
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y']; // 变量名要加''
/*或者 global $x,$y;
$y=$x+$y; */
}
myTest(); //调用函数
echo $y;
?>
15
static 例:
<?php
function myTest()
{
static $x=0;
echo $x;
$x++;
echo PHP_EOL; // 换行符
}
myTest();
myTest();
myTest();
?>
0 1 2
然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值。
注释:该变量仍然是函数的局部变量。