学有小成-php基础语法-02
一基本语法
PHP是一种服务器端嵌入html的脚本语言。也就是您可以使用php标签(<?php … ?>),将您想动态输出的数据嵌入到html代码中。
1php语法规则
由于我们在apache的主配置文件中设置了php文件的扩展名.php,所以所有的php文件的扩展名都是.php
php文件必须通过域名访问。php文件中不能包含中文。
php每一条语句后必须有’;’
php中的变量名必须区分大小写,其余的函数名、方法名、类名都不区分大小写,但建议区分。
2php标记
php从开始至今存在四种标签。
①、标准格式(xml格式)
<?php … ?>
②、script格式
③、短格式
<? … ?>
④、asp格式
提示:
对于短格式与asp格式需要在php.ini中开启
3注释
单行注释:
//注释内容
多行注释:
/*多行注释*/
示例:
二变量及操作
程序语言就是对内存进行操作(对内存进和读写操作)。
1概念
变量是内存中用于临时存储数据的一个空间,这个空间有一个名子,这个名字就是变量名。变量名是用于对这个内存中的数据进行引用的。
2声明
语法:
$变量名=值;
说明:
php中的变量必须参’$’开头,
变量名只能包含字母、数字、下划线,只能以字母、下划线开头。
示例:
3修改变量的值
4删除变量
语法:
unset(变量名);
示例:
5可变变量
①、通过一个变量访问另一个变量
②、通过一个变量创建另一个变量
三预定义变量
PHP为了我们预先定义了一组变量,这些变量会在不同的需求中使用。
$_GET 用于接收前台表单使用get方式提交的数据
$_POST 用于接收前台表单使用post方式提交的数据
$_REQUEST 用于接收前台表单使用get或post方式提交的数据
$_SERVER 记录了服务器端与客户端的相关信息
$_COOKIE 一种会话技术
$_SESSION 一种会话技术
$_FILES 用于记录用户上传的文件信息
$GLOBAL 用于记录全局变量
示例:
四内存原理(形象理解)
程序语言就是对内存进行操作的。
1内存结构
①、栈区
保存的是变量名(术语称之为引用)。
特点:对于cpu来说,读写速度是最快的
②、数据段
存储的是简单的数据,例如:整形、浮点型、布尔值
③、堆区
存储的“复杂”的数据,数组、对象
④、代码段
存储的是源代码的对应的机器指令。(人能看懂的计算机是看不懂的,必须经过转换)
⑤、输出缓存
只要遇到输出命令,例如:echo 、print、print_r、var_dump,这些指令都会将所要输出数据放在输出缓存中。
2php的执行过程
①、编译阶段
进行语法检查、词法检查、代码优化。
编译通过之后将源代码转换为机器指令。
编译阶段错误的提示信息如下:
②、执行阶段
如果编译通过后,会将源代码对应的机器指令,保存在代码段,再开始执行代码段中的机器指令。
示例:
3php嵌入到html的执行过程
当php功能模块在处理一个php文件时,它只关心php代码(使用PHP标签包含的代码)。对于非php代码,它会原样输出。
4php中变量的传值方式
在Php中变量有两种传值方式:
①、赋值传值
使用一个变量a为另一个变量b赋值时,传递的是变量a的值,这种赋值方式就是赋值传值
②、引用传值
使用一个变量a为另一个变量b赋值时,传递的是变量a的地址,这种赋值方式就是引用传值
提示:
js中不允许人为的更改传值方式,但是PHP中可以使用地址符’&’,来将赋值传值,更改为引用传值。
五常量
1概念
常量就是一种特殊的变量,也是用于存储数据。常量一旦定义就不允许修改其值,常量本身也不允许删除。
2定义
①、语法1:
define('常量名',值);
②、语法2:
const 常量名=值;
示例:
说明:
常量一旦定义就不允许更改
常量的值只能是基本数据类型(标量数据类型)
常量是默认区分大小写,一般常量在命名时,我们会使用全大写的形式
③、define VS const
define语法可以在分支结构中定义常量,const不允许的。
define定义的常量可以自定义是否区分大小写。
3常量的判断及获取所有的常量
①、defined();
②、get_defined_constants();
4魔术常量
php中又定义了一组魔术常量。
__FILE__ 用于获取前文件名完整路径及文件名
__DIR__ 用于获取当前文件的路径
__LINE__ 用于获取当前行号
__FUNCTION__ 用于获取当前函数的函数名
__METHOD__ 用于获取当前方法的方法名
__CLASS__ 用于获取当前类的类名
__NAMESPACE__ 用于获取当前空间的空间名
示例:
六PHP的数据类型
1数据类型的分类
PHP数据类型分为三大类八小类
①、标量(scalar)数据类型
int 整型
float 浮点类型
boolean 布尔类型
string 字符串
②、复合数据类型
array 数组
object 对象
③、特殊数据类型
null null
resource 资源类型
2数据类型详解之整数int 类型
线性的整数
①、十进制
$v = 255;
②、八进制
以0开头,并且不能有超过7的数字
③、十六进制
以0x开头,包含0-9 a-f
示例:
3数据类型详解之浮点float类型
带有小数点的数就是浮点类型。
小数有两种表示方式:
普通方式:
科学计数法:
示例:
注意:
4数据类型详解之字符串string类型
字符串就是使用单引号或双引号括起来的0个或多个字符。
①、使用单引号定义的字符串
能够被转义的字符有 \\ \’
单引号定义的字符串中的变量不能解析其值。
②、使用双引号定义的字符串
能够被转义的字符有 \” \t \r \n \\ \$
双引号定义的字符串中的变量的值可以被解析。
示例:
③、heredoc
也是使用双引号定义字符串的,主要应用场景是定义大段的字符串。
语法:
$heredoc = <<<开始标记
大段的文本
结束标记;
转义符:\
用于将程序语言所赋予的某些字符的特殊功能转义掉。
输出不可见的符。
转义符能够转义的字符:
\' 单引号
\" 双引号
\t tab符
\r 回车符
\n 换行符
\\ \
\$ $
5数据类型详解之布尔类型
布尔类型只有两个值:
true 成立
false 不成立
6数据类型详解之array类型
①、索引数组
数组元素的下标是数值,这样的数组就是索引数组
②、关联数组
数组元素的下标是字符串,这样的数组就是关联数组。
数组元素的访问:
7数据类型详解之null类型
null类型只有一个值,null
8数据类型之资源类型
resource类型
资源数据类型也是一个特殊的变量,程序员没有办法直接定义一个资源,必须使用PHP提供的获取资源的函数。
七数据类型的转换
思考:
什么时候会出生数据类型的转换。
数据就是用于运算,当参与运算的两个数据,类型不同时,php会自动进行转换。
有时我们也会进行强制转换。
1自动转换
2强制转换
(integer)变量 将其他数据类型强制转换为整型
(float)变量 将其他数据类型强制转换为浮点型
(array)变量 将其他数据类型强制转换为数组
(object)变量 将其他数据类型强制转换为对象
(string)变量 将其他数据类型强制转换为字符串
(boolean)变量 将其他数据类型强制转换为布尔值
示例:
说明:
0、0.0、字符空、字符0、空数组、null是等效于布尔false的值
八数据类型的判断
判断函数的格式的规律:
is_int(v);
is_string(v);
is_bool(v);
is_float(v);
is_scalar(v) 判断变量的类型是否是int、string、bool、float
is_array(v)
is_object(v)
is_resource(v)
is_null(v);
isset(v) 用于判断变量是否有设置值(判断变量的值是否为null值)。
示例:
empty(v) 用于判断变量v的值是否为”空”,此处的空表示只要是等效于布尔false的值都被empty认为是空。如果是空返回true,否则返回false。