PHP简介
什么是PHP?
php是一种服务端的HTML脚本/编程语言,是一种简单的、面对对象的、解释型的、健壮的、安全的、性能非常之高的、独立于架构的、可移植的、动态的脚本语言。是一种广泛用于Open source(开放源代码)的尤其适合Web开发并可以潜入HTML的多用途脚本语言。他的语法接近C,Java和Perl,而且容易学习。该语言让Web开发人员快速的书写动态生成的网页。
PHP前身:Personal HomePage,个人主页,使用Perl语言开发的一种写个人主页的语言
PHP:PHP Hypertext Preprosessor,php超文本预处理器,底层使用c语言
PHP发展史
Rasmus Lerforf:创建者
1994: 1.0 个人perl,非常简陋
1996: 2.0 C底层,变得相对比较强大
1998: 3.0 zendEngine,联合zend公司共同管理和维护PHP,zendEngine(zend引擎)用户搞笑的解析php代码
2000:4.0session+输出缓冲等,session技术(会话技术)
2004: 5.0 zend引擎2代,增加新技术(面向对象更新,命名对象更新,命名空间,异常)
2015:7.0 新版的ZendEngine引擎,性能提升,新特性(异常)
平台支持(window,linux,UNIX)
数据库支持(Sqlserver,mysql,Oracle,Access)
静态网站与动态网站的区别
静态网站:web1.0时代
动态网站:web2.0时代
网站
Website的中文名称是网站,是指在互联网上,根据一定的规则,使用HTML、PHP等代码语言制作的用于展示特定内容的相关网页的集合,有可供管理人员操作的后台及用户使用的前台。Website是一种通讯工具,像布告栏一样。
静态网站特点
1.每个网页都是独立的文件,保存在网站服务器上的
2.静态网页的内容相对稳定,音痴容易被搜索引擎检索
3.静态网页没有数据库支持,制作和维护方面工作量较大,因此当网站信息量很大是完全依靠静态网页制作方式比较困难
4.静态网页的交互性较差,在功能方面有较大的限制
动态网站特点
1.交互性:网页会根据用户的要求和选择而动态的改变和响应,浏览器作为客户端,成为一个动态交流的桥梁,动态网页的交互性也是今后Web发展的潮流
2.自动更新:即无需手动更新HTML文档,便会自动生成新页面,可以大大节省工作量
3.因时因人而变:即当不同事件、不同用户访问同一个网址时会出现不同页面。
网站基本概念
服务器概念
服务器(server),也成伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,音痴一半来说服务器应具备承担服务总线等,和通用的计算机架构勒事,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
服务器:能够提供服务的机器,取决于机器上所安装的软件(服务软件)
PHP
底层说C语言实现:VC9代表着编译环境
PHP语法
PHP是一种运行中服务器端的脚本语言,可以嵌入到HTML中
PHP代码标记
在PHP历史发展中,可以使用多种标记来区分PHP脚本
ASP标记:<%php代码%>
短标记:<?php代码?>,以上两种基本弃用,如果要使用那么需要在配置文件中开启
脚本标记:<script language="php">php代码</script>
标准标记:<?php php代码?>
变量
php是一种动态网站开发的脚步语言,动态语言特点是交
互性,动态语言特点是交互性,会有数据传递,而php作为“中间人”,需要进行数据传递,传递的前提就是php能自己存储数据(临时存储)
php中不需要任何关键字定义变量(赋值),
变量名规则
1.变量必须以“$”开头
2.名字有字母,数字和下划线构成,但是不能以数字开头
3.php本身还允许中文变量(不建议使用)
预定义变量:提前定义的变量,系统定义的,存储许多需要用到的数据(预定义变量都是数组)
$_GET:获取所有表单以get方式提交的数据
$_POST:POST提交的数据都会保存在此
$_REQUEST:GET和POST提交的都会保存
$_GLOBALS:PHP中所有的全局变量
$_SERVER:服务器信息
$_SESSION:session会话数据
$_COKIE:cookie会话数据
$_ENV:环境信息
$_FILES:用户上传的文件信息
可变变量:如果一个变量保存的值刚好是另外一个变量的名字,那么可以直接通过访问一个变量得到另外一个变量的值:在变量前面再多一个$符号
变量传值:将一个变量赋值给另外一个变量:变量传值
变量传值一共有两种方式:值传递,引用传递
值传递:将变量保存的值赋值一份,然后将新的值给另外一个变量保存(两个变量没有关系)
饮用传递:将变量保存的值所在的内存地址,传递给另外一个变量:两个变量指向同一快内存空间(两个变量是同一个值)
在内存中,通常有以下几个分区
栈区:程序可以操作的内存部分(不存数据,运行程序代码),少但快
代码段:存储程序的内存部分(不执行)
数据段:存储普通数据(全局区和静态区)
堆区:存储复杂数据,大但是效率低
常量
常量:const/constant,是一种在程序运行当中,不可改变的量(数据)
形式:使用定义常量的函数:define(‘常量名’,常量值); 。5.3之后才有的:const常量名=值
常量命名规则
1.常量不需要$,一点使用吸引认为是变量
2.有字母,数字和下划线组成,不能以数字开头
3.以大写字母为主(与变量区别开)
4.命名规则比变量松散,可以使用一些特色自负,改方式只能使用define定义
系统常量
PHP_VERSINON:PHP版本号
PHP_INT_SIZE:整形大小
PHP_INIT_MAX:整形能表示的最大值
特殊常量:由双下划线+常量名+双下划线结束,这种常量称之为系统魔术常量:魔术常量的值通常会跟着环境变化,但是用户改变不了
__DIR__:当前被执行的脚本所在电脑的绝对路径
__FILE__:当前被执行的脚本所在的电脑的绝对路径(带自己文件的名字)
__LINE__:当前所属的行数
__NAMESPACE__:当前所属的命名空间
__CLASS__:当前所属的类
__METHOD__:当前所属的方法
数据类型:data type,在PHP中指的是存储的数据本身的类型,而不是变量的类型。PHP是一种若类型语言,变量本身没有数据类型
八种数据类型
基本数据类型:四类
整型:int/integer,系统分配4个字节存储,表示证书类型(有前提)
浮点型:float/double,系统分配8个字节村粗,表示小树获取整型存不下的整数
字符串型:string,系统根据实际长度分配,表示字符串(引号)
布尔类型:bool/boolean,表示布尔类型,只有两个值:true和false
复合数据类型:两类
对象类型:object,存放对象(面对对象)
数组类型:array,存储多个数据(一次性)
特殊数据类型:两类
资源类型:resource,存放资源数据(php外部数据,如数据库、文件)
空类型:NULL,只有一个值就是NULL(不能运算)
类型转换:在很多的条件下,需要制定的数据类型,需要外部话剧(当php去的数据),转换成目标数据类型
在PHP中有两种类型转换方式:
1.自动转换:系统根据需求自己判定,自己转换(用的比较多,效率偏低)
2.强制(手动)转换:认为根据需要的目标类型的转换
强制转换规则:在变量之前增加一个(),然后在里面协商对应类型:int/integer,其中null类型用到unset()
在转换过程中,用的比较多的就是转布尔类型(判断)和转数值类型(算术运算)
其他类型转布尔类型:true或false,在PHP中比较少类型换成false
其他类型转数值的说明
1.布尔true为1,false为0
2.字符串转数值有自己的规则
2.1 以字母开头的字符串,永远为0
2.2 以数字开头的字符串,去的碰到字符串位置(不会同时包含两个小数点)
类型判断
通过一组类型判断函数,来判断变量,最终返回这个变量所保存数据的数据类型(结果相同返回true,否则返回false):是一组以is_开头后面跟类型名字的函数:is_XXX(变量名)
Bool类型不能用echo来查看,可以使用var_dump结构查看
var_dump