【PHP8入门指南】语法基础与变量
前言:
PHP是一门解释性弱类型的高级编程语言,自诞生以来就一直秉着大道至简,一切从易的原则。所以PHP对于编程入门来说,是一门十分容易上手且能很快投入开发工作中的编程语言。也正因为如此,导致PHP的从业者们良莠不齐,也就产生了“PHP是世界上最好的语言”的调侃。
基础语法
文件格式
PHP的代码文件是以 .php 结尾的,如 test.php
代码区声明
PHP的代码是由一对<?php 和 ?> 包围起来的,即:
<?php
echo "hello world\n";
?>
提示:?> 尾标签可以忽略不写,不影响程序执行。头标签必须写!
输出方式
PHP主要有两个输出语法:echo 与 print。
echo 和 print 区别:
-
echo - 可以输出一个或多个字符串
-
print - 只允许输出一个字符串,返回值总为 1
提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。
例:
<?php
echo "hello world\n";
print "hello world\n";
输出结果:
image变量
介绍
变量其实可以理解为是一个代数,类似我们从小学习的方程式。例:x + y = 3; x = 1;求y?
在计算机编程语言中,变量是用于存储信息的“容器”;
变量可以是很短的名称(如 x 和 y)或者更具描述性的名称(如 man girl tom)。
PHP 变量规则:
1. ****变量以 $ 符号开始,后面跟着变量的名称
2. ****变量名必须以字母或者下划线字符开始
3. ****变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ )
4. ****变量名不能包含空格
5. ****变量名是区分大小写的(Y 是两个不同的变量)
注意:PHP的变量是区分大小写的!
变量使用
因为PHP弱类型语言的特性,在声明使用变量时,我们无需关注即将要声明的变量的类型。将我们想要存储的数据直接声明并赋值给变量,PHP会自动解析变量类型。而在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。
例:
<?php
$a = 1; // 整型
$f = 1.0; // 浮点型
$boolean = true; // 布尔型
$string1 = 'hello'; // 字符串
$string2 = "hello";
$array = [1,2,3,4,5,6,7,8,9,10,11]; // 数组
$test = null; // null型
注意:代码片段中的 // 为注释标签,不影响程序运行。相同的还有 /** **/
变量作用域
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问。
<?php
$a = 1; //全局变量
function test() {
$b = 2; // 局部变量
global $a; //通过global关键字来访问全局变量
echo "函数内部使用局部变量是 {$b}\n";
echo "函数内部使用全局变量是 {$a}\n";
}
test(); //运行函数
echo "函数外部使用局部变量是 {$b}\n";
echo "函数外部使用全局变量是 {$a}\n";
运行结果:
image可以看出,在函数外部去访问函数内部创建的变量b,但访问$a不会报错。
注意:你可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内。
Global关键字
global 关键字用于函数内访问全局变量。
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字。
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
<?php
$x = 15;
$y = 101;
function test()
{
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
test();
echo $y;
运行结果:
imageStatic关键字
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。这时我们就可以使用static关键字,不过由static声明的局部变量始终还是局部变量,并不能在函数外部进行访问。相较于没有static的局部变量而言,只是不会在函数完成后被删除而已。
例:
<?php
function test() {
static $a = 0;
$a = $a + 1;
echo $a."\n";
}
test();
test();
test();
test();
输出结果:
image我们可以看到当我们执行四次test()函数,static(静态)变量a在每次test()函数执行完后都没有被删除,而是继续存在,当我们再次调用test()函数时,PHP就会取出静态变量$a用于函数内部的执行。
那如果我们去掉static会是怎么样呢?
例:
<?php
function test() {
$a = 0;
$a = $a + 1;
echo $a."\n";
}
test();
test();
test();
test();
输出结果:
image可以看出,当我们去除static关键字后,test()函数的每次执行都是一次“崭新”的执行。变量$a在每次执行开始时都会重新创建,执行结束后又被删除,并不会像静态变量那样继续留存在内存中。
总结
关于PHP的基础语法与变量的声明和使用,我们就学完了。基于弱类型语言的特点,我们在PHP中使用变量时无需像在C语言JAVA语言以及Go语言这类强类型编程语言中那样去关注变量的数据类型;PHP会根据我们的赋值自动推导出变量类型;这也就代表着各个变量中可以相互覆盖声明而不报错,在我们编程过程中需要避免这种各个变量覆盖声明使用的情况。
<?php
$a = 1;
$a = "hello";
echo $a; //我们之前声明的变量a就被后面声明的同名变量所覆盖
运行结果:
image