1、php是一种运行在服务器端的脚本语言,可以嵌入到HTML中。
2、php 代码标记
在php历史发展中,可以使用多种标记来区分php脚本
a、ASP标记:<% php代码 %>
b、短标记:<? php代码 ?>
c、脚本标记:<script language=“php”>php代码</script>
d、标准标记(常用):<?php php代码 ?>
注意:a,b两种基本弃用。如果要使用需要在配置文件中开启
3、php注释
a、单行注释
//:后面注释内容
#:与//相同
b、多行注释
/*中间填写注释内容*/
4、php语句分隔符
英文状态下的分号:“;” 代表句子结尾。
注意:
a、php中标记结束符?>有自带语句结束符的效果,最后一行php代码可以没有语句结束符
b、php中其实很多代码的书写并不是嵌入到HTML中,而是单独存在,通常书写习惯就不建议使用标记结束符?>,php会自动从开始到最后认为全部是php代码,从而解析。
5、变量
在php中不需要任何关键字定义变量。
php中的所有变量都必须使用“$”符号,如 $var=0;
变量删除:删除变量使用unset(变量名字) unset($var)
注意:在php中变量名必须以“$”符号开始;
预定义变量:提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)
$_GET:获取所有表单以get方式提交的数据
$_POST:POST提交的数据都会保存在此
$_REQEST:GET和POST提交的都会保存
$GLOBALS:PHP中所有的全局变量
$_SERVER:服务器信息
$_SESSION:session会话数据
$_COOKIE:cookie会话数据
$_ENV:环境信息
$_FILES:用户上传的文件信息
变量的传递:
值传递:$a=10;$b=$a;$b=5; 结果$a=10,$b=5
引用传递:$c=10;$d=&$c;$c=5; 结果$c和$d都是5
引用传递传的是地址。
6、常量
a、使用定义常量的函数:define('常量名','常量值');
b、const 常量名 = 值;
(常量通常不加$)
常用的几个系统常量:
PHP_VERSION:PHP版本号
PHP_INT_SIZE:整型大小
PHP_INT_MAX:整型能表示的最大值(php中整型允许负数)
魔术常量:
__DIR__:当前脚本所在电脑的绝对路径
__FILE__:当前脚本所在的绝对路径(带文件名)
__LINE__:当前所属行数
__NAMESPACE__:当前所属命名空间
__CLASS__:当前所属的类
__METHOD__:当前所属的方法
7、数据类型
PHP是弱类型的语言,变量本身没有数据类型
文件包含:
文件包含:在一个PHP脚本中,去将另一个php文件包含进来,去合作完成一件事情。
文件包含作用:
a、要么使用被包含文件中的内容,实现代码的共享,向上包含。
向上包含:在当前脚本要用某个代码之前包含别的文件。
b、要么自己有东西可以给别的文件使用,实现代码共享:向下包含
最大作用:分工协作,每个脚本做的事情不一样,因此可以使用协作方式,让多个脚本共同完成一件事情。
文件包含四种形式:
include:包含文件
include_once:系统自动判断文件包含过程中,是否已经宝韩国(一个文件最多包含一次)
require:同include
require_once:同include_once
包含基本语法:
include '文件名字';
include('文件名字')
这种方式是先包含文件,后使用文件中的内容。
include_once() 系统遇到多次也执行一次。会先检查是否已经包含。
PHP代码的执行流程:
1、读取代码文件(PHP程序)
2、编译:将PHP代码转换成字节码(生成opcode)
3、zendengine来解析opcode,按照字节码去进行逻辑运算。
4、转换成对应的HTML代码。
文件加载原理:
1、在文件加载(include或者require)的时候,系统会自动的将被包含文件中的代码相当于嵌入到当前文件中。
2、加载位置:在哪加载,对应的文件中的代码嵌入的位置就是对应的include的位置。
3、在PHP中被包含的文件是单独进行编译的。
PHP文件在编译的过程如果出现语法错误,那么会失败(不会执行):但是如果被包含文件有错误的时候,系统会在执行到包含include这条语句的时候才会报错。
require和include的区别:本质都是包含文件,唯一的区别在于包含不到文件的时候,报错的形式不同。
include的错误级别较轻:不会阻止代码执行。
require要求较高:如果包含出错代码不再执行(require后面的代码)
文件加载路径:
文件在加载的时候需要指定文件路径才能保证PHP正确的找到对应的文件。
文件的加载路径包含两大类:
1、绝对路径
从硬盘的根目录开始(本地绝对路径)
Windows:盘符 C:/路径/PHP文件
linux:/路径/PHP文件
从网站根目录开始(网络绝对路径)
/:相对于网络主机名字对应的路径
2、相对路径:从当前文件所在目录开始的路径
.|.:表示当前文件夹
../:上级目录
3、绝对路径和相对路径的加载区别
a、绝对路径相对效率低,但是相对安全
b、相对路径相对效率高,但是容易出错
文件嵌套包含:一个文件包含另外一个文件,同时被包含的文件又包含了另外一个文件。
嵌套包含的时候容易出现相对路径出错的问题:相对路径会因为文件的包含而改变(./和../)
函数:
基本语法:
function 函数名([参数]){
//函数体
//返回值:return 结果
}
函数内部访问函数外部的变量:使用 global关键字或者使用$GLOBALS['变量名']。
静态变量:static,是在函数内部定义的变量,使用static关键字修饰,用来实现跨函数共享数据的变量:函数运行结束所有局部变量都会清空,如果重新运行一下函数,所有的局部变量又会重新初始化。
static $变量名 = 值;
静态变量的作用是为了跨函数共享数据(同一函数被多次调用)。
函数在调用的时候,会自动跳过static关键字。
可变函数:当前有一个变量所保存到值,刚好是一个函数的名字,那么可以使用变量+()来充当函数名使用。
$变量 = 'func';
function func(){}
$变量();
可变函数在系统的使用过程中用的还是比较多的,尤其是使用很多系统函数的时候,需要用户在外部定义一个自定义函数,但是是需要传入到系统函数内部使用。
匿名函数:没有名字的函数。
基本语法:
变量名=function(){函数体}
变量名保存匿名函数本质得到的是一个对象。
//闭包函数
function display1(){
//定义变量:局部变量
$name=__FUNCTION__;
//定义匿名函数
$innerfunction=function () use($name){
//use就是将外部变量(局部)保留给内部使用(闭包)
//函数内部的函数
echo $name;
};
return $innerfunction;
}
$closure=display1();
$closure();
伪类型:假类型,实际上在PHP中不存在的类型。但是通过伪类型可以帮助程序员去更好的查看操作手册从而更方便的学习。
伪类型主要有两种:在三大类三小类之外
Mixed:混合的,可以是多种PHP中的数据类型
Number:数值的,可以是任意数值类型(整型和浮点型)
PHP中常用的系统函数:
1、有关输出的函数:
print() 只能打印出简单类型变量的值(如int,string)
print_r() 可以打印出复杂类型变量的值(如数组,对象)
echo 输出一个或者多个字符串 这个不是函数是语句
2、有关时间的函数
time()返回当前的unix时间戳
date()格式化一个本地时间/日期
microtime()返回当前unix时间戳和微秒数
strtotime:按照规定格式的字符串转换成时间戳
3、有关数学的函数
4、有关函数的函数。