一、认识PHP
# php简介
PHP(Hypertext Preprocessor),(超文本预处理器)Rasmus Lerdorf创建于1995年
PHP是B/S(Browser/Server的简写,即浏览器/服务器结构)体系结构,属于三层结构
面向对象的、完全跨平台的新型Web开发语言
PHP版本:https://www.php.net/git.php
# php优势
安全性高、跨平台、支持多数据库、免费
二、PHP基础语法
# php标记支持4种方式
a、<?php ?> 推荐方式
b、<? ... ?> 短标记风格,需要在配置文件中php.ini中将short+open_tag
c、<% ... %> 需要在配置文件中 php.ini中将asp_tags设置为开启
d、<script language="php">...</script>
# PHP注释
a、单行注释 // #
b、多行注释 /* 这里是注释内容*/
# PHP变量与常量
a、变量的作用:暂存数据的存储空间
b、变量的声明:
所有的变量名必须以美元符号($)开头
美元符号后的第一个字符必须为字母(A~Z,a~z)或者下划线(_)(不能使用数字)
变量名任何数量的字母、数字和下划线组合
不能出现空格(通常使用下划线进行字符分隔)
区分大小写的
# 变量赋值的2种方法(值赋值和引用赋值)
<?php // 变量的赋值方式1 // 将赋值表达式的值复制到变量中 $name_1 = "你好,php"; // 变量的赋值方式2 // 引用表达式 $name_2 = "你好,2022"; $name_3 = &$name_2; echo $name_3; echo $name_2; // 改变$name_2的值 $name_2 = "你好,java"; echo $name_3; // 输出你好,java
# 可变变量
<?php // 可变变量(一般很少使用) // 可以将遍历名存储在另一个变量名中 $t1 = "hello,你好啊"; $t2 = "hi,$t1"; echo $t2;
# 变量作用域 (4种)
a、局部变量:在函数中声明的变量是局部变量,只能在该函数内引用,退出声明变量的函数时,该变量及相应的值就会销毁
b、函数参数:
c、全局变量:可以在任何地方访问,只要在GLOBAL即可标识为全局变量
d、静态变量:static 静态变量退出时不会消失
5、超级全局变量:
$GLOBALS:执行脚本内部全部可用的变量所组成的数组
$_SERVER:脚本环境
$_GET $_POST:
$_SESSION 和$_COOKIE
$_REQUEST:用户输入所有的变量数组
# 常量:常量一旦定义就永远不能改变
defined 查看常量是否被定义
a、自定义常量
boolean define(staring name, mixed value ,[bool case_insensitive])
case_insensitive:TRUE 表示引用常量不区分大小写
常量定义时不可用字符 $ 开头,常量值只能是特定的类型,整数,浮点数,字符串,和布尔值
<?php // 常量 define("PI",3.14); echo PI; echo(defined("PI"));// 1
b、魔术常量
__LINE__ 当前行号
__FILE__ 文件完整路径和文件名
__FUNCTION__ 函数名称
__CLASS__ 类名称
__METHOD__ 类方法名
# 表达式分类
一元表达式
二元表达式
三元表达式
# 操作符
# 数据类型
基本数据类型:整型、浮点型、布尔型、字符串
复合数据类型:数组和对象
特殊数据类型:NULL和资源
整型:(十进制、十六进制、八进制、8进制前面必须加0、16进制前必须加上0x)
只能包含整数(可以是正数或负数)
$num1 = 123; // 10进制
$num2 = 0123; // 8进制
$num3 = 0x3A; // 16进制
浮点型:(浮点型数据既可以用来存储整数,也可以用来存储小数和指数)
$x = 10.365;
var_dump($x)
布尔型:(True和False)
$x = true;
$y = false;
字符串:(使用单引号或双引号包裹)
1、单引号:字符串按照声明输出,不会解析
2、双引号:会解析变量
\n 换行字符
\r 回车字符
\t 制表符
\$ 美元符号
\0 值在0~255之间字符,8进制表示法
\x 值在0~255之间字符,16进制表示法
$msg = 'Hello,world'
数组:
$cars = array(
'volvo','BMV'=>array('z3','x7'),
'Toyota'
)
count() 函数取得数组元素的个数
数组排序:sort() 和 rsort()
sort() 按照数组元素的值进行排序 按照数字后字母的顺序由小到大进行排序
rsort()
ksort()
krsort()
# 对象
class Car{
}
$car = new Car();
$car->方法();
1、对象句柄:获得一块存储空间
2、属性与方法
# 其他类型
1、资源
2、NULL 表示无值
被设置为大小写敏感的关键字NULL
从未被赋过值
使用unset()方法后清除
NULL、0、空字符的区别:NULl表示无值,0和空字符表示有值,值为0和空
# 强制类型转换
a、隐式强制类型转换
b、显式类型转换
(int) / (integer):转换为整数
(float) / (double) / (real):转换为浮点数
(string):转换为文本字符串
(bool) / (boolean):转换为布尔值
(array):转换为数组
(object):转换为对象
c、强制类型转换函数
is_type():判断当前是否为某种类型的变量
gettype:得到当前变量的类型
settype:有两个参数为要转换的变量和要转换的类型,函数返回布尔值,表示转换成功