【PHP8入门指南】语法基础与变量

2022-07-27  本文已影响0人  就叫我菜菜吧

前言:

PHP是一门解释性弱类型的高级编程语言,自诞生以来就一直秉着大道至简,一切从易的原则。所以PHP对于编程入门来说,是一门十分容易上手且能很快投入开发工作中的编程语言。也正因为如此,导致PHP的从业者们良莠不齐,也就产生了“PHP是世界上最好的语言”的调侃。

基础语法

文件格式

PHP的代码文件是以 .php 结尾的,如 test.php

代码区声明

PHP的代码是由一对<?php 和 ?> 包围起来的,即:


<?php
    echo "hello world\n";
?>

提示:?> 尾标签可以忽略不写,不影响程序执行。头标签必须写!

输出方式

PHP主要有两个输出语法:echo 与 print。

echo 和 print 区别:

  1. echo - 可以输出一个或多个字符串

  2. 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 和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时,程序代码会报错提示未定义的变量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;

运行结果:

image

Static关键字

当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。这时我们就可以使用static关键字,不过由static声明的局部变量始终还是局部变量,并不能在函数外部进行访问。相较于没有static的局部变量而言,只是不会在函数完成后被删除而已。

例:


<?php

function test() {
    static $a = 0;
    $a = $a + 1;
    echo $a."\n";
}
test();
test();
test();
test();

输出结果:

image

我们可以看到当我们执行四次test()函数,static(静态)变量a也就累加了四次。静态变量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
上一篇下一篇

猜你喜欢

热点阅读