1年以前我就浅学过PHP,用thinkPHP
框架开发起来确实比较轻松快捷流水化。最近闲来无事,再次回顾学习下这个世界上最好的语言。
简介
PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。
语法
PHP 脚本在服务器上执行,然后将纯 HTML 结果发送回浏览器。
PHP 脚本可以放在文档中的任何位置。
PHP 脚本以 <?php 开始,以 ?> 结束。很多语言的语法都相类似。
1 | <!DOCTYPE html> |
变量
变量以 $ 符号开始,后面跟着变量的名称
变量名必须以字母或者下划线字符开始
变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
变量名不能包含空格
变量名是区分大小写的($y 和 $Y 是两个不同的变量)
同js一样PHP也是弱类型脚本语言不需要声明变量的数据类型
作用域
- local 局部
- global 全局
- static 静态
- parameter 参数
1 |
|
当一个函数完成时,它的所有变量通常都会被删除。所以当需要时可以声明静态变量
1 |
|
输出echo和print
echo 和 print 区别:
- echo - 可以输出一个或多个字符串
- print - 只允许输出一个字符串,返回值总为 1
echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。
语句加分号
数据类型
- String(字符串)
1 |
|
- Integer(整型)
- Float(浮点型)
- Boolean(布尔型)
- Array(数组)数组排序函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$cars=array("Volvo","BMW","Toyota");
echo count($cars);
// 数组遍历
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++)
{
echo $cars[$x];
echo "<br>";
}
// 关联数组 object?
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
// 遍历关联数组
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
- sort() - 对数组进行升序排列
- rsort() - 对数组进行降序排列
- asort() - 根据关联数组的值,对数组进行升序排列
- ksort() - 根据关联数组的键,对数组进行升序排列
- arsort() - 根据关联数组的值,对数组进行降序排列
- krsort() - 根据关联数组的键,对数组进行降序排列
- Object(对象) 使用class关键字声明类对象。类是可以包含属性和方法的结构。
1 |
|
- name:必选参数,常量名称,即标志符。
- value:必选参数,常量的值。
- case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
if…elseif….else 语句
1 |
|
超级全局变量
- $GLOBALS(超级全局变量组)
- $_SERVER(包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组)
- $_REQUEST(用于收集HTML表单提交的数据)
- $_POST(用于收集HTML表单提交的数据,method设置为post)
- $_GET(用于收集HTML表单提交的数据,method设置为get,也可以收集URL中发送的数据)
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
1 |
|
魔术常量(预定义常量)
- LINE(当前行号)
- FILE(文件的完整路径和文件名)
- DIR(文件所在目录)
- FUNCTION(函数内部返回函数名)
- CLASS(类内部返回类名)
- TRAIT(Trait 名包括其被声明的作用区域) 从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。 其行为 MyHelloWorld 类中定义的方法一致。优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。
1 |
|
- METHOD(返回方法定义时的名称)
- NAMESPACE(当前的命名空间名称)
- 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
- 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。
php获取下拉菜单的数据
1 |
|
获取当前时间
1 |
|
文件引入
include 和 require 的区别
- require 一般放在 PHP 文件的最前面,程序在执行前就会先导入要引用的文件;
- include 一般放在程序的流程控制中,当程序执行时碰到才会引用,简化程序的执行流程。
- require 引入的文件有错误时,执行会中断,并返回一个致命错误;
- include 引入的文件有错误时,会继续执行,并返回一个警告。
打开文件
1 | $file = fopen("test.txt","r"); |
文件上传
1 | <form action="upload_file.php" method="post" enctype="multipart/form-data"> |
1 |
|
设置cookie(必须写在html之前)
1 | setcookie("user", "cosyer", time()+3600); // 1小时后过期 |
存储session
1 | session_start(); |
php发送email
1 |
|
错误处理
die(“文件不存在”);