目录
前言
一、基础语法
1.1 标记
1.2 输出语句
1.2.1 echo
1.2.2 print
1.3 注释
1.3.1 单行注释
1.3.2 多行注释
1.4 标识符
1.5 关键字
二、数据与运算
2.1 常量
2.1.1 常量的定义和使用
2.1.2 预定义常量
2.2 变量
2.2.1 变量的赋值
2.2.2 超全局变量
2.3 数据类型
2.3.1 标量数据类型
2.3.2 特殊数据类型
2.3.3 数据类型检测
2.3.4 数据类型转换
2.4 运算符及优先级
2.4.1 运算符
2.4.2 优先级
总结
🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。
💡本文由Filotimo__✍️原创,首发于CSDN📚。
📣如需转载,请事先与我联系以获得授权⚠️。
🎁欢迎大家给我点赞👍、收藏⭐️,并在留言区📝与我互动,这些都是我前进的动力!
🌟我的格言:森林草木都有自己认为对的角度🌟。
前言
本篇文章通过介绍php的基础语法,数据与运算,来让你了解PHP的魅力。
这是本篇文章的脉络图:
一、基础语法
1.1 标记
1.2 输出语句
1.2.1 echo
1.2.2 print
例如:
<?php
var_dump("php","2");
?>
1.3 注释
1.3.1 单行注释
使用双斜线(//)来注释单行代码。注释符号后面的内容将被视为注释,不会被解释器执行。
例如:
<?php
// 这是一个单行注释示例
$variable = "Hello World";
?>
1.3.2 多行注释
使用斜线加星号(/*... */)来注释多行代码。注释符号之间的内容将被视为注释,不会被解释器执行。
例如:
<?php
/* 这是一个多行
注释示例 */
$variable2 = "Hello World";
?>
1.4 标识符
1.5 关键字
1. echo:用于在屏幕上输出文本或变量的值。
2. if、else、elseif:用于条件语句,根据指定条件执行不同的代码块。
3. for、while、do-while:用于循环结构,重复执行一段代码块。
4. switch、case:用于多重条件判断,根据不同情况执行不同的代码块。
5. break:用于退出循环或switch语句。
6. continue:用于跳过当前循环的剩余代码,继续下一轮循环。
7. function:用于定义和声明一个函数。
8. class、interface、trait、extends、implements:用于面向对象编程,定义类、接口和特性,实现类之间的继承和接口的实现。
9. public、protected、private:用于定义类的成员属性或方法的访问级别。
10. static:用于定义静态属性和方法,可以在不创建类的实例的情况下访问。
11. final:用于防止类被继承或方法被覆盖。
12. abstract:用于声明抽象类或方法,不能直接实例化。
13. namespace:用于声明命名空间,避免类名冲突。
14. use:用于导入其他命名空间的类或函数。
二、数据与运算
2.1 常量
2.1.1 常量的定义和使用
在PHP中,可以使用`define()`函数来定义常量。常量是无法被改变的值,在定义后不能再次进行修改。常量的定义方式有两种:
1. 使用 `define()` 函数定义常量:
define ('PAI', '3.14');
echo 'PI =', PAI; / / Output result: PI =3.14
define ('R', '5', true);
echo 'radius =', R; / / Output result: Radius =5
echo 'radius =', r; / / Output result: Radius =5
2. 使用`const`关键字定义常量(PHP 5.3+):
const R = 6;
const P = 2 * R;
echo 'P=', P; // 输出结果:P=12
无论使用哪种方式定义常量,都无法在定义后再次修改常量的值。另外,常量的作用域是全局的,可以在任何地方访问,包括函数内部。
2.1.2 预定义常量
PHP中有许多预定义常量,它们是由PHP提供的全局常量。这些常量可以在任何地方直接使用,无需进行定义或声明。以下是一些常用的预定义常量及其解释:
-
__FILE__
:当前执行的文件的完整路径和文件名。 -
__DIR__
:当前执行的文件所在的目录的绝对路径。 -
__LINE__
:当前代码行号。 -
__FUNCTION__
:当前所在函数的函数名。 -
__CLASS__
:当前所在类的类名。 -
__METHOD__
:当前所在方法的方法名。 -
__NAMESPACE__
:当前所在命名空间的命名空间名。 -
PHP_VERSION
:当前PHP版本号。 -
PHP_OS
:运行PHP的操作系统。 -
PHP_EOL
:当前操作系统的换行符。
这些预定义常量可以帮助我们获取有关代码和环境信息,方便进行调试和编程。可以通过直接在代码中使用它们来获取相应的值。示例:
echo __FILE__; // 输出当前文件的完整路径和文件名
echo __DIR__; // 输出当前文件所在的目录的绝对路径
echo __LINE__; // 输出当前代码行号
function myFunction() {
echo __FUNCTION__; // 输出当前所在函数的函数名
echo __CLASS__; // 输出当前所在类的类名
echo __METHOD__; // 输出当前所在方法的方法名
}
echo PHP_VERSION; // 输出当前PHP版本号
echo PHP_OS; // 输出运行PHP的操作系统
2.2 变量
2.2.1 变量的赋值
在PHP中,变量赋值是将一个值保存到变量中的过程。PHP是一种动态类型的语言,因此在赋值时无需事先声明变量的数据类型。以下是关于PHP变量赋值的三种方式:
1. 传值赋值:
$variable_name = value;
这是最常见的赋值语法,通过=
操作符将一个值赋给变量。$variable_name
是变量名,value
是要赋给变量的值。
示例:
$name = "John"; // 将字符串 "John" 赋给变量 $name
$age = 25; // 将数字 25 赋给变量 $age
$is_active = true; // 将布尔值 true 赋给变量 $is_active
2. 引用赋值:
在PHP中,通过引用赋值可以使用多个变量引用同一个值。
$variable_name = &$reference_variable;
`&$reference_variable`表示一个引用变量,它与其他变量共享相同的内存空间,即对其中一个变量的修改会影响其他引用变量。
示例:
$a = 10;
$b = &$a; // 将 $a 的引用赋给 $b
$b = 20; // 修改 $b 的值也会影响 $a
echo $a; // 输出 20
2.2.2 超全局变量
在PHP中,超全局变量(superglobal variables)是一类预定义的全局变量,它们在脚本的任何地方都可以直接访问,无需额外的声明或引用。这些超全局变量在整个脚本中都是可用的,无论是在函数、类、循环还是条件语句中。
以下是PHP中最常用的超全局变量:
1. `$_GET`:用于获取通过 URL 查询字符串传递的参数。它是一个关联数组,其中的键是参数名,值是参数的值。
示例:
// URL: example.***?name=John&age=25
echo $_GET['name']; // 输出 "John"
echo $_GET['age']; // 输出 "25"
2. `$_POST`:用于获取通过 HTTP POST 方法提交的表单数据。它也是一个关联数组,其中的键是表单字段名,值是字段的值。
示例:
// 表单中的字段:<input type="text" name="name"> 和 <input type="text" name="age">
echo $_POST['name']; // 输出提交的 name 字段的值
echo $_POST['age']; // 输出提交的 age 字段的值
3. `$_REQUEST`:用于获取通过 HTTP GET 或 POST 方法提交的参数和表单数据。它是`$_GET`和`$_POST`的合并。
4. `$_COOKIE`:用于获取客户端提交的 Cookie 值。它是一个关联数组,其中的键是 Cookie 名称,值是 Cookie 的值。
示例:
echo $_COOKIE['username']; // 输出名为 username 的 Cookie 值
5. `$_SESSION`:用于访问当前会话的 session 数据。它是一个关联数组,用于在不同页面之间存储和读取会话信息。
示例:
session_start();
$_SESSION['username'] = 'John'; // 设置 session 变量
echo $_SESSION['username']; // 输出 'John'
6. `$_SERVER`:包含了有关服务器和执行环境的信息,例如请求的方法、请求的 URL、服务器的主机名等。它是一个关联数组。
示例:
echo $_SERVER['REQUEST_METHOD']; // 输出请求的方法(GET、POST、PUT等)
echo $_SERVER['SERVER_NAME']; // 输出服务器的主机名
2.3 数据类型
2.3.1 标量数据类型
1.布尔型
布尔型是PHP中较常用的数据类型之一,通常用于逻辑判断。 表示事物的“真”和“假”,并且不区分大小写。
$isTrue = true;
$isFalse = false;
2.整型
<?php
$number = 100;
echo 'number=',$number;
echo '<br>';
echo "$number=",$number;
?>
注意:单引号输出字符串,双引号里面可以解析变量。
上述例子运行结果如下:
2.3.2 特殊数据类型
<?php
$x="Hello world!";
$x=null;
var_dump($x);
?>
2.3.3 数据类型检测
2.3.4 数据类型转换
1.自动类型转换
指的是当运算需要或与期望的结果类型不匹配时,PHP将自动进行类型转换,无需开发人员做任何操作。
2.强制类型转换
var_dump((int) "6.66");
2.4 运算符及优先级
2.4.1 运算符
-
算术运算符:
-
+
加法:对两个数进行相加。 -
-
减法:从一个数中减去另一个数。 -
*
乘法:将两个数相乘。 -
/
除法:将一个数除以另一个数。 -
%
取模:取得两个数相除后的余数。
-
-
赋值运算符:
-
=
赋值:将右侧的值赋给左侧的变量。 -
+=
加法赋值:将右侧的值加到左侧的变量上。 -
-=
减法赋值:从左侧的变量中减去右侧的值。 -
*=
乘法赋值:将左侧的变量乘以右侧的值并重新赋值给左侧的变量。 -
/=
除法赋值:将左侧的变量除以右侧的值并重新赋值给左侧的变量。
-
-
比较运算符:
-
==
等于:检查两个值是否相等。 -
!=
不等于:检查两个值是否不相等。 -
>
大于:检查左侧的值是否大于右侧的值。 -
<
小于:检查左侧的值是否小于右侧的值。 -
>=
大于等于:检查左侧的值是否大于或等于右侧的值。 -
<=
小于等于:检查左侧的值是否小于或等于右侧的值。
-
-
逻辑运算符:
-
&&
逻辑与:检查两个条件是否同时为真。 -
||
逻辑或:检查两个条件是否至少有一个为真。 -
!
逻辑非:对条件进行取反。
-
-
字符串运算符:
-
.
连接:连接两个字符串。 -
.=
连接赋值:将右侧的字符串连接到左侧的字符串上并重新赋值给左侧的字符串。
-
-
自增/自减运算符:
-
++
自增:将变量的值加1。 -
--
自减:将变量的值减1。
-
-
数组运算符:
-
+
合并:将两个数组合并为一个新数组。 -
==
相等:检查两个数组是否相等。 -
===
全等:检查两个数组的键和值是否完全相同。
-
2.4.2 优先级
运算符的优先级决定了它们在表达式中的结合性和执行顺序。如果有多个运算符同时出现,优先级高的运算符会先于优先级低的运算符进行计算。可以使用括号 ()
来改变运算符的优先级和强制先执行某些部分。
以下是运算符的优先级(从高到低):
-
一元运算符:
一元运算符包括前置递增/递减运算符++$x
、--$x
和取反、正数运算符-$x
、+$x
。它们具有最高的优先级,会先于其他运算符进行计算。 -
乘性运算符:
乘性运算符包括乘法*
、除法/
和取模%
,以及字符串连接运算符.
。它们的优先级高于加性运算符,但低于一元运算符。乘性运算符按照从左到右的顺序进行计算。 -
加性运算符:
加性运算符包括加法+
和减法-
,以及字符串连接运算符.
。它们的优先级低于乘性运算符,但高于位移运算符。加性运算符按照从左到右的顺序进行计算。 -
位移运算符:
位移运算符包括左移<<
和右移>>
。它们的优先级低于加性运算符,但高于比较运算符。 -
比较运算符:
比较运算符包括小于<
、小于等于<=
、大于>
、大于等于>=
,以及等于==
、不等于!=
、全等===
、不全等!==
。比较运算符的优先级低于位移运算符,但高于位运算符和逻辑运算符。 -
位运算符:
位运算符包括按位与&
、按位异或^
、按位或|
。它们的优先级低于比较运算符,但高于逻辑运算符。 -
逻辑运算符:
逻辑运算符包括逻辑与&&
、逻辑或||
,以及逻辑异或^
和逻辑非!
。逻辑运算符的优先级低于位运算符,但高于条件运算符。 -
三元条件运算符:
三元条件运算符expr1 ? expr2 : expr3
用于根据条件选择表达式的值。它的优先级低于逻辑运算符,但高于赋值运算符。 -
赋值运算符:
赋值运算符用于给变量赋值,如=
、+=
、-=
、*=
、/=
、%=
、.=
等。赋值运算符具有最低的优先级。
总结
PHP在当今世界仍然是一门流行和重要的服务器端脚本语言。它具有广泛的应用领域、强大的生态系统和不断发展的特点,为Web开发提供了可靠和灵活的解决方案。随着技术的进步和改进,PHP有望继续保持其在Web开发领域的重要地位。