PHP语法(一)
回顾
- PHP:超文本预处理器,这是一种运行在服务器端的开源的脚本语言
- LAMP:Linux+Apache+MySQL+PHP,这4个软件全部都是开源的
-
静态网站和动态网站
- 静态网站:不具有数据交互功能的网站
- 动态网站:具有数据交互功能的网站
- 实现动态网站的技术:asp php .net java
-
客户端和服务器端
- 服务器端:为访问者提供服务的计算机,从狭义上来说,Apache是服务器。
- 客户端:用来请求服务器的计算机,web客户端是IE,QQ客户端是软件
- 端口和端口号 0~65535
- BS架构(浏览器和服务器)和CS架构(客户端软件和服务器)
- 前台和后台
-
IP地址和域名
- 通过IP地址唯一标识每台计算机
- 域名是IP地址的别名,为了便于记忆。
-
PHP优点
- 跨平台
- 源码开发
- 语法简单
-
安装Apache
- httpd命令在bin目录下
- htdocs是默认的虚拟目录
- conf是配置文件夹
- conf/httpd.conf是Apache的配置文件
- httpd -t 用来检测apache的运行情况
- httpd -M 用来显示加载的模块
- httpd -k start/stop/restart
- apache的启动/停止/重启
- http://localhost显示itworks表示正常
-
安装PHP
- 在httpd.conf中通过LoadModule加载PHP模块
- 在httpd.conf中当访问PHP页面的时候调用PHP模块
- 在httpd.conf中指定PHP配置文件 phpinidir
-
- 在php.ini中通过extension_dir指定PHP扩展的加载位置
-
安装MySQL
- MySQL的端口号是3306
到此wamp安装完毕,下面提高部分
- 更改虚拟目录位置,在httpd.conf中DocumentRoot更改虚拟目录指令
- 注意:更改虚拟目录位置的同时一定要更改虚拟目录的权限
<Directory 虚拟目录路径>
</Directory>
-
- allow from all 允许所有
- order allow,deny 先执行允许,后执行拒绝
- options indexes 目录中的文件用索引方式显示
- allowoverride all 允许分布式部署文件覆盖
- 更改默认首页 DirectoryIndex index.html index.php
- 更改监听端口 Linten 80
- 虚拟主机配置 httpd-vhosts.conf文件中配置
- DNS解析 system32/drivers/etc/hosts文件中
-
分布式部署
- 文件名是.htaccess文件
- 在当前目录及子目录中有效
- 可以更改apache和php的配置(php_flag php_value)
总结:httpd.conf对Apache起作用,php.ini对PHP起作用 .htaccess对apache和PHP都起作用
配置文件可分为两个部分:主配置文件系统,分布式配置文件
解释型和编译型
如果保存了可执行代码是编译型语言,没有保存可执行代码是解释型语言
PHP执行过程
脚下留心:PHP生成的中间语言保存在内存中(这点和java,.net不一样,这两门语言是可以看到中间文件的),PHP看不到中间文件。如果从能否看见中间文件这个角度来说PHP是解释型的;从是否生成中间文件来说PHP是编译型的。
EditPlus介绍
体积小,可以自定义插件的一个开发工具
EditPlus的设置
PHP四种定界符
- 标准风格【推荐使用】
<?php
echo ‘i am a boy!!!’;
?>
- 短标记风格(在php.ini中将short_open_tag = On)
默认情况下不支持短标记,必须在php.ini配置文件中开启支持短标记
<?
echo ‘i am a boy!!!’;
?>
- asp风格(在php.ini中将asp_tags = on)
默认不支持asp风格
<%
echo ‘i am a boy!!!’;
%>
- script标记风格
<script language=”php”>
echo ‘i am a girl!!!’;
</script>
PHP的执行原理
客户端向服务器发送请求:
- 如果请求的是HTML页面,服务器不执行,将页面的代码全部发送到客户端。
- 如果请求的是PHP,服务器会执行PHP页面,执行完毕后会生成标准的HTML代码,然后将HTML代码发送到客户端
PHP语法特点
PHP用分号表示语句的结束
PHP变量名是区分大小写的,但是关键字不区分大小写
PHP支持省略结束标记
<?php表示php语言的开始, ?>表示php语言的结束。
如果一个页面从PHP开始一直到页面的最后全部是PHP代码,PHP结束符是可以省略的。
PHP结束符中有一个隐藏的分号
页面显示乱码解决
解决方法一:在内容最上面输出<meta>标记
解决方法二:header()
PHP注释
PHP注释有单行注释和多行注释
输出语句
在PHP中常用的输出有echo,print,print_r,var_dump
echo【适合输出字符串和数字】
echo可以输出字符串和数字型,不适合输出布尔和数组,true输出成1,false输出成空,数组输出成array
echo可以一次输出多个数据。
print和echo大体一样,可以输出字符串和数字,不适合输出布尔和数组
print每次只能输出一个值,输出成功会返回1。
print_r
print_r主要用来输出数组。
var_dump()【输出内容+数据类型+字符串长度】
var_dump()不但能输出数据的内容,而且可以输出数据类型和字符串的长度。
变量
变量就是计算机内存中的一段空间。
变量的命名规则
变量必须以$开头,除了$以外,变量以字母,下划线开头,后面跟的是字母、数字、下划线。($不是变量的组成部分,$表示变量的开始)
下列变量名合法的是:
$aa 合法
$1a 不合法
$_1a 合法
$a-1 不合法
变量的赋值
传值
传址
&表示取出a的地址
销毁变量
情况一:页面执行完毕后,变量全部销毁,有PHP的垃圾回收机制销毁。
情况二:可以通过unset()手动销毁变量
问题:PHP垃圾回收机制如何判断垃圾数据的?
答:如果一个数据没有被变量引用,这个数据就是垃圾数据。
unset()销毁的是变量名,变量名销毁以后,变量的值就不被引用,垃圾回收机制就将值销毁。
判断变量是否存在
isset()判断变量是否存在
预定义变量
$_GET:用来保存客户端提交给服务器的Get提交的数据,是数组类型的数据
Get提交的URL地址格式: 地址?参数=值&参数=值&…
比如:index.php?name=tom&sex=男&age=22
$_POST:用来保存POST提交的数据,数组类型
$_REQUEST:既能获得get提交的数据,又能获得post提交数据
如果既有get,又有post,使用$_REQUEST获取值的时候,如果有同名的参数,post会将get的值覆盖。
我们可以在php.ini中更改get和post覆盖的顺序。
$argc、$argv
PHP的运行不是必须Apache的参与,直接通过php.exe也是可以执行PHP的。
$_GET、$_POST、$_REQUEST都是用来获取http提交参数。
$argc保存参数的个数,$argv保存参数的数组
可变变量
将变量名存储到另个变量中
多学一招:变量名可以保存在变量中,函数名也可以保存在变量中
常量
当一个数据在执行周期内不发生变化,我们把这个数据声明成常量。
常量名前面没有$。$表示的是变量的开始
常量的定义一般都在程序的开始处定义。
语法
define(常量名,常量值,[是否区分大小写,默认是区分大小写的])
特殊字符做常量名
PHP中可以使用特殊字符做常量名,但是调用的使用必须使用constant关键字来调用
判断常量是否存在
常量一旦定义后面不能重新定义,所以在定义常量的时候我们先判断一下常量是否存在
通过defined()函数判断常量是否定义
预定义常量
例题
魔术常量
常量的值是不变的,但是魔术常量的值是变化的。
例题
const常量
常量除了可以用define定义,还可以用const来定义
查看所有常量
Editplus提示设置
Editplus默认是没有提示的,必须添加语法文件才有提示
第一步:准备语法文件
第二步:将语法文件添加到editplus上