$ 1 php,php语法基础知识
2023.07.02 / 小杰
前言:
PHP是一门解释性弱类型的高级编程语言,自诞生以来就一直秉着大道至简,一切从易的原则。所以PHP对于编程入门来说,是一门十分容易上手且能很快投入开发工作中的编程语言。也正因为如此,导致PHP的从业者们良莠不齐,也就产生了“PHP是世界上最好的语言”的调侃。
基础语法
文件格式
PHP的代码文件是以 .php 结尾的,如 test.php
代码区声明
PHP的代码是由一对<?php 和 ?> 包围起来的,即:
<?php echo "hello world
";?>
提示:?> 尾标签可以忽略不写,不影响程序的执行。头标签必须写!
输出方式
PHP主要有两个输出语法:echo 与 print。
echo 和 print 区别:
1. echo - 可以输出一个或多个字符串
2. print - 只允许输出一个字符串,返回值总为 1
提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。
例:
<?php echo "hello world
"; print "hello world
";
输出结果:
变量
介绍
变量其实可以理解为是一个代数,类似我们从小学习的方程式。例: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}
"; echo "函数内部使用全局变量是 {$a}
";}test(); //运行函数echo "函数外部使用局部变量是 {$b}
";echo "函数外部使用全局变量是 {$a}
";
运行结果:
可以看出,在函数外部去访问函数内部创建的变量$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;
运行结果:
Static关键字
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。这时我们就可以使用static关键字,不过由static声明的局部变量始终还是局部变量,并不能在函数外部进行访问。相较于没有static的局部变量而言,只是不会在函数完成后被删除而已。
例:
<?phpfunction test() { static $a = 0; $a = $a + 1; echo $a."
";}test();test();test();test();
输出结果:
我们可以看到当我们执行四次test()函数,static(静态)变量$a也就累加了四次。静态变量$a在每次test()函数执行完后都没有被删除,而是继续存在,当我们再次调用test()函数时,PHP就会取出静态变量$a用于函数内部的执行。
那如果我们去掉static会是怎么样呢?
例:
<?phpfunction test() { $a = 0; $a = $a + 1; echo $a."
";}test();test();test();test();
输出结果:
可以看出,当我们去除static关键字后,test()函数的每次执行都是一次“崭新”的执行。变量$a在每次执行开始时都会重新创建,执行结束后又被删除,并不会像静态变量那样继续留存在内存中。
总结
关于PHP的基础语法与变量的声明和使用,我们就学完了。基于弱类型语言的特点,我们在PHP中使用变量时无需像在C语言JAVA语言以及Go语言这类强类型编程语言中那样去关注变量的数据类型;PHP会根据我们的赋值自动推导出变量类型;这也就代表着有着相同变量名的变量可以相互覆盖声明而不报错,在我们编程过程中需要避免这种重复覆盖声明使用的情况。
<?php $a = 1; $a = "hello"; echo $a; //我们之前声明的变量a就被后面声明的同名变量所覆盖
运行结果:
- END -
被裁了,39 岁阿里 P9,攒下 1.5 亿....

今天刷知乎,在问题 “40 岁因为财务自由决定不上班的人,个人资产总和到底有多少” 下看到一位...
Windos下设置java项目开机自启动

这里是将java项目注册为Windows服务实现开机自启动。 查看.NET framework版本 因为使用winsw工具运行时需...
低代码开发重要工具:jvs-flow (流程引擎)2.1.7版本更新内容

流程引擎主要包含了流程定义和编辑、任务分配和处理、流程监控和跟踪、数据模型和存储、条件和规则设置、安...
手写简易 Spring(二)

文章目录 手写简易 Spring(二)1. 扩展 BeanFactory 接口2. 实现资源加载器,从 Sp...
AVL树,红黑树,红黑树封装map和set

文章目录 AVL树AVL树的实现AVL树的节点 AVL树的平衡因子 AVL树的插入AVL树的旋转左单旋右单旋...