PHP语法初步
PHP是一种运行在服务器端的脚本语言,可以嵌入到HTML中。
PHP代码标记
- ASP标记:<% php代码 %>
- 短标记:<? php代码 ?>
以上两种基本弃用,如果要使用需要在phpini配置文件中开启。

//和#都可以
- 块注释
PHP语句分隔符
在PHP中,代码是以行为单位,系统需要通过判断行的结束,该结束通常都是一个符号:分号;(英文状态下)
1.PHP中标记结束符?>有自带语句结束符的效果,最后一行PHP代码可以没有语句结束符。 2.PHP中其实很多代码的书写并不是嵌入到HTML中,而是单独存在,通常书写习惯中就不建议使用标志结束符?>
变量
PHP是一种动态网站开放的脚本语言,动态语言的特点是交互性,会有数据的传递,而PHP作为“中间人”,需要进行数据的传递,传递的前提就是PHP自己存储(临时)数据。
变量的使用
- 定义:在系统中增加对应的变量名字(内存)
- 赋值:可以将数据赋值给变量名(可以在定义的同时完成)
- 可以通过变量名访问存储的数据
可以将变量名从内存中删除
<?php// 定义变量:在PHP中不需要任何关键字定义变量(赋值)$var1; //定义变量$var2 = 1; //定义同时赋值// 访问变量echo $var2; //通过var2变量名字找到存储的内容1,然后输出// 修改变量$var2 = 2echo '<hr/>',$var2 // <hr/>为分割线// 删除变量unset($var2)
变量命名规则
在PHP中变量名字必须以$开始。
- 名字由字母、数字和下划线 _ 构成,但是不能以数字开头。
-
预定义变量
提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)
$_GET:获取所有表单以get方式提交的数据。
$_POST:POST提交的数据都会保存在此。
$_REQUEST:GET和POST提交的都会保存。
$GLOBALS:PHP中所有的全局变量。
$_SERVER:服务器信息
$_SESSION:session会话数据
$_COOKIE:cookie会话数据
$_ENV:环境信息
$_FILES:用户上传的文件信息可变变量
如果一个变量保存的值刚好是另外一个变量的名字,那么可以直接通过访问一个变量得到另外变量的值:在变量前面在多加一个$符号。
<?php//定义两个变量$a = 'b';$b = 'bb';echo $$a; // 输出'bb'
变量传值
将一个变量赋值给另外一个变量
两种方式:值传递和引用传递。 值传递:将变量保存的值复制一份,然后将新的值给另外一个变量保存(两个变量没有关系)。
- 引用传递:将变量保存的值所在的内存地址,传递给另一个变量,两个变量指向同一块内存空间(两个变量是同一个值)。
在内存中通常有以下几个分区:
- 栈区:程序可以操作的内存部分(不存数据,运行程序代码)
- 代码段:存储程序的内存部分(不执行)
- 数据段:存储普通数据(全局区和静态区)
- 堆区:存储复杂数据,大但是效率低


常量
常量基本概念
常量,const/constant,是一种在程序运行中,不可改变的量(数据)。
常量一旦定义,通常数据不可改变(用户级别)。
常量定义形式
1.在PHP中变量有两种定义方式(5.3之后):
- 使用定义常量的函数:define(‘常量名’,常量值)
- const 常量名 = 值(5.3之后)
2.常量命名规则:
- 常量不需要使用$符号,一旦使用系统就会认为是变量
- 常量的名字有字母、数字和下划线组成,不能以数字开头
- 常量的名字通常是以大写字母为主(区别于变量)
- 常量命名的规则比变量松散,可以使用一些特殊字符,该方式只能用define定义 ```php <?php
// 使用函数定义常量:define define(‘PI’,3.14);
// 使用const关键字定义 const PII = 3;
//定义特殊变量 define(‘--‘,’smile’); const ‘--‘ = ‘smile’ //错误
注意细节:- define和const定义的常量是有区别的,在于访问权限。- 定义常量通常不区分大小写,但是可以区分,可以参照define的第三个参数。<a name="3Kkm2"></a>### 常量的使用常量的使用和变量一样,不可以改变值(在定义时就必须赋值)。<br />有的时候还需要使用另外一种形式来访问(针对的是特殊名字的常量),需要用到一个另外一个访问常量的函数:constant('常量名')```php<?php// 使用函数定义常量:definedefine('PI',3.14);// 使用const关键字定义const PII = 3;//定义特殊变量define('-_-','smile');const '-_-' = 'smile'; //错误// 使用常量echo PI;echo constant('-_-');
系统常量
系统帮助用户定义的常量,用户可以直接使用。
常用的几个系统常量:
- PHP_VERSION:PHP版本号
- PHP_INT_SIZE:整型大小
- PHP_INT_MAX:整形能够表示的最大值
在PHP中还有一些特殊的变量,他们有双下划线开始+常量名+双下划线结束,这种变量称为系统魔术变量:魔术变量的值通常会跟着环境变化,但是用户改变不了。
- DIR:当前被执行的脚本所在电脑的绝对路径
- FILE:当前被执行的脚本所在的电脑的绝对路径(带自己文件的名字)
- LINE:当前所属的行数
- NAMESPACE:当前所属的命名空间
- CLASS:当前所属的类
- METHOD:当前所属的方法
数据类型
数据类型:data type,在PHP中指的是存储的数据本身的类型,而不是变量的类型。PHP是一种弱类型语言,变量本身没有数据类型。
PHP的八种数据类型
简单数据类型(4)
- 整型:int/integer,系统分配4个字节存储,表示整数类型(有前提)
- 浮点型:float/double,系统分配8个字节存储,表示小数或者整型存不下的整数
- 字符串型:string,系统根据实际长度分配,表示字符串(引号)
布尔类型:bool/boolen,表示布尔类型,只有两个值:true和false
复合数据类型(2)
对象类型:object,存放对象(面向对象)
-
特殊数据类型(2)
资源类型:resource,存放资源数据(PHP外部数据,如数据库、文件等)
-
类型转换
在很多条件下,需要指定数据类型,需要外部数据(当前PHP取得的数据)转换成目标数据类型。
在PHP中有两种类型转换方式: 自动转换:系统根据需求自己判定,自己转换(用的较多,效率偏低)
- 强制(手动)转换:认为根据需要的目标类型转换
在转换类型中,用的较多的是转布尔类型(判断)和转数值类型(算术运算)。
字符串转数值的规则:
- 以字母开头的字符串,永远为0
- 以数字开头的字符串,取到碰到字符为止(不会同时取两个小数点)
类型判断
通过一组类型判断函数来判断变量,最终返回这个变量所保存数据的数据类型,是一组以is_开头后面跟类型名称的函数:is_XXX(变量名)
布尔类型不能使用echo来查看,可以使用var_dump(变量名1,变量名2,……)结构查看
也可以使用gettype()来获取数据类型,
settype()设置数据类型(与强制转换不同)
强制转换是对数据值复制的内容进行处理,不会处理实际存储的内容;settype()会直接改变数据本身
整数类型
在PHP中提供了四种整型的定义方式:十进制定义、二进制定义、八进制定义、十六进制定义。
<?PHP$a = 120; // 十进制$b = 0b110; // 二进制$c = 0120; // 八进制$d = 0xff; // 十六进制
