【笔记】PHP学习笔记

前言

PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面,但PHP也被用于其他很多领域。(维基百科

php的外壳

  • php外壳不可以嵌套
  • 如果不换行,必须要在php关键字后加一个空格
1
<?php ?>

设置字符编码集

1
2
<meta charset="utf-8">
<?php ?>

注释

1
2
3
// 单行注释

/* 多行注释 */

输出数据到HTML

1
echo 数据;

变量

  • PHP在定义变量时不需要指定变量类型,PHP的变量可以存放任意类型的数据
  • PHP的变量命名规则
    • $开头
    • 严格区分大小写
    • 只能包含字母数字下划线
    • 不能以数字开头
    • 尽量不要使用PHP的关键字作为变量名

变量的声明

1
$变量名 = 变量值;

变量的调用

1
$变量名

变量的释放

1
unset($变量名);

可变变量

  • 将一个变量的值作为另一个变量的变量名
1
2
3
$a = "b";
$b = "c";
echo $$a;

引用赋值

  • 引用赋值会指向与原变量相同的内存地址,而不是开辟一个新的内存地址
1
2
3
4
5
6
7
8
9
10
11
12
13
$a = 1;

// 普赋赋值
$b = $a;
$b = $b+1;
echo $a; // 1
echo $b; // 2

// 引用赋值
$c = &$a;
$c = $c+1;
echo $a; // 2
echo $c; // 2

数据类型

布尔型bool

  • truefalse

在使用echo输出时,true输出为1,false输出为空白
在使用var_dump()输出时,true输出为true,false输出为false

被认定为false的其他值

  • PHP中可以使用其他数据类型的值表示bool类型的值,部分值被认定为false,其他值被认定为true
数据类型 被认定为false的值
布尔型 false
整数型 0
浮点型 0.0
字符串 空字符串、字符串”0”
数组 空数组
空数据 NULL

整形int

1
$变量名 = 1

浮点型float

1
$变量名 = 1.0

字符串string

  • 单引号和双引号都可以定义字符串,但如果想解析字符串内出现的变量,必须使用双引号,单引号定义的字符串无法解析变量
    • 在解析变量时,变量名必须为已经赋值的变量
    • 如果变量名后接着其他字符串,可以使用空格将其他字符串隔开
    • 如果变量名后紧接着其他字符串,可以使用{}将变量名包裹
    • 如果双引号中需要输出$符号,需要转译\$
  • 单双引号定义的字符串出现符号需要使用\转译,如果出现大量的符号,可以使用定界符,定界符内包含的所有字符串都会原封不动的作为字符串,定界符的HTML关键字前后都不能出现任何其他字符(包括空格、制表符)
1
2
3
4
5
6
7
8
9
$变量名 = "This is a string";
$变量名 = 'This is a string';

$变量名 = "$变量名 This is a string";
$变量名 = "{$变量名}This is a string";

$变量名 = <<<HTML
This is a string
HTML;

常量

常量的定义

1
define("常量名", "常量值");

常量的使用

1
常量名

预定义常量

常量名 常量值
__FILE__ 当前的文件名
__LINE__ 当前代码的行数
__FUNCTION__ 当前的函数名
__CLASS__ 当前的类名
__METHOD__ 当前对象的方法名
PHP_OS 当前操作系统名
PHP_VERSION 当前PHP版本
DIRECTORY_SEPARATOR 当前系统所使用的路径分隔符(\/

运算符

算术运算符

运算符 作用
+ 求和
- 求差
* 求积
/ 求商
% 求模

赋值运算符

运算符 作用
= 直接赋值
+= 相加后赋值
-= 相减后赋值
*= 想乘后赋值
/= 相除后赋值
%= 取模后赋植

字符串运算符

运算符 作用
. 串接字符串
.= 串接后赋值

递增递减运算符

运算符 作用
++$变量名 递增1(先递增,后赋值)
$变量名++ 递增1(先赋值,后递增)
–$变量名 递减1(先递减,后赋值)
$变量名– 递减1(先赋值,后递减)

比较运算符

运算符 作用
== 判断等于(不包括类型)
=== 判断全等(包括类型)
!= 判断不等
<> 判断不等
> 判断大于
< 判断小于
>= 判断大于等于
<= 判断小于等于

逻辑运算符

运算符 作用
and 与运算
or 或运算
xor 异或运算
&& 与运算
&#124;&#124; 或运算
! 非运算

数组运算

运算符 作用
+ 联合(不覆盖重复键)
== 判断相等(不包括顺序和类型)
=== 判断全等(包括顺序和类型)
!= 判断不等
<> 判断不等
!== 判断不全等

关联数据库

旧版

建立连接

<ip>:数据库地址
<user>:用户名
<password>:密码
<database>:需要连接的数据库名

1
2
mysql_connect("<ip>", "<user>", "<password>");
mysql_selectdb("<database>");

执行SQL语句

<sql>:sql语句

1
$result = mysql_query(<sql>);

处理结果

1
2
$arr = mysql_fetch_array($result);
print_r($arr);

报错

  • PHP的报错会直接输出在页面上

报错类型

  • Error:出错,结束脚本执行
  • Warning:警告,只提示,不影响执行
  • Notice:注意

屏蔽报错

1
@可能会报错的语句

执行系统shell

  • 利用关键字``执行系统shell并利用echo关键字输出结果
1
echo `<shell>`

完成

参考文献

哔哩哔哩——Python小清风
W3School
菜鸟笔记
哔哩哔哩——千锋教育网络安全学院
PHP手册(中文)