PHP原始为Personal Home Page的缩写,已经正式更名为 “PHP: Hypertext Preprocessor”。PHP 语言作为当今最热门的网站程序开发语言,它具有成本低、速度快、可移植性好、 内置丰富的函数库等优点,因此被越来越多的企业应用于网站开发中。
PHP文件能够包含文本、HTML、CSS以及PHP代码。PHP代码在服务器上执行,结果以纯文本返回到浏览器。它的扩展名是.php。
PHP能生成动态页面内容,能创建、打开、读取、写入、删除以及关闭服务器上的文件。能增删改查数据库中的数据,能限制用户访问网站中的某些页面,更能够对数据进行加密。
zendframwork,Yii,CakePHP,Symfony,CodeIgniter,CanPHP,Laravel,SlimFramework,ThinkPHP,PHPUnit,KYPHP,initPHP,SpeedPHP都是PHP至今拥有的轻量级框架,重构性强(博主个人比较推荐Laravel框架,简单易上手)
PHP标记风格为<?php ... ?> 。
下面是PHP代码中的几种注释:
// 这是单行注释
#这也是当行注释
/*
这是多行注释块
它横跨了
多行
*/
在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感,但是申明的变量对大小写敏感,字母大小写不同在PHP中都代表不同的变量。
PHP的变量:PHP中变量以$开头,类似于JS中的var,其后跟随的是变量名(变量名称必须以字母或者下划线开头,变量名称只能包含字母数字字符和下划线(A-z、0-9),并且大小写不同代表的是不同的变量)。
PHP的作用域:写在函数外面的是global全局变量;反之,写在函数里的是局部变量;如果想让局部变量变成全局,需要在函数申明前加上global;函数中的局部变量是静态(static)的,当执行完函数之后会删除所有变量(当我们不想删除这局部变量时,可以在外部执行一次,这样变量就能被保存出来);
PHP中有一些超全局变量:
1、$GLOBALS
2、$_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。
3、$_REQUEST 用于收集 HTML 表单提交的数据。
<body>
<form action="<?php echo $_SERVER['PHP_SELF'];?>">
<!-- 利用$_SERVER获取当前脚本地址 -->
<input type="text" name="user">
<input type="submit" value="处理数据">
</form>
<?php
if($_REQUEST){
$userName = $_REQUEST['user'];
echo $userName;
}
?>
</body>
4、$_POST 广泛用于收集提交 method=“post” 的 HTML 表单后的表单数据。
<body>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">
<!-- 利用$_SERVER获取当前脚本地址 -->
<input type="text" name="user">
<input type="submit" value="处理数据">
</form>
<?php
if($_POST){
$userName = $_POST['user'];
echo $userName;
}
?>
</body>
5、$_GET
也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。
6、$_FILES
从客户计算机向远程服务器上传文件。
7、$_ENV(不常用)
通过环境方式传递给当前脚本的变量的数组。例如当前计算机名称
8、$_COOKIE
变量用于取回 cookie 的值。
9、$_SESSION(保持用户登录状态必用的超全局变量)
存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量
魔术变量:
LINE
返回当前代码在php中的行数,用于调试php脚本;
FILE
返回当前文件的完整路径(绝对路径)
FUNCTION
返回当前函数的函数名
CLASS
返回当前的类名
1、echo 或 echo()相同
$a=5;
$b=6;
$arr=array("a"=>10,"b"=>20);
echo $a+$b;//11;
echo $a.$b;//56;
echo "这些数字是{$arr['b']}";
echo "这些数字是".$arr["b"];
2、print 或 print()相同
$a=5;
$b=6;
$arr=array("a"=>10,"b"=>20);
print $a+$b;//11;
print $a.$b;//56;
print "这些数字是{$arr['b']}";
print "这些数字是".$arr["b"];
3、echo和print相同,但是也有不同点
echo - 能够输出一个以上的字符串
echo $a,$b;
print - 只能输出一个字符串,并始终返回 1
echo print $a;//51
先打印print $a,再用echo打印print返回的值
print_r($arr);
只能打印数组
4、var_dump()打印变量的类型和值
$a=5;
$b=6;
$arr=array("a"=>10,"b"=>20);
var_dump($a);
var_dump($arr);
1、条件语句
if 语句 - 如果指定条件为真,则执行代码
if…else 语句 - 如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码
if…elseif…else 语句 - 选择若干段代码块之一来执行
注意elseif没有空格
2、循环语句
switch 语句 - 语句多个代码块之一来执行
while - 只要指定条件为真,则循环代码块
do…while - 先执行一次代码块,然后只要指定条件为真则重复循环
for - 循环代码块指定次数
foreach - 遍历数组中的每个元素并循环代码块
gettype() 返回数据的数据类型
3、判断类型
is_int() 是不是整型;
is_bool()是不是布尔值;
is_string()是不是字符串;
is_array()是不是数组类型;
is_double()是不是浮点数;
(1)字符串- - -string
字符串可以是引号内的任何文本。您可以使用单引号或双引号
(2)整数- - -int
整数必须有至少一个数字(0-9)
整数不能包含逗号或空格
整数不能有小数点
整数正负均可
可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)
PHP整数在定义的时候判断了以上这些情况,如果满足就确认为整数型
var_dump($x);
$x = -345; // 负数
var_dump($x);
$x = 0x8C; // 十六进制数
var_dump($x);
$x = 047; // 八进制数
var_dump($x);
(3)浮点数- - -float/double
浮点数是有小数点或指数形式的数字。
(4)布尔型- - -bool
布尔型是 true 或 false。
(5)数组- - -array
.1、数组在一个变量中存储多个值。
.2、数组长度
count()
.3、索引数组 - 带有数字索引的数组
$cars=array("Volvo","BMW","SAAB");
$cars[0]="Volvo";
.4、关联数组 - 带有指定键的数组
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
$age['Peter']="35";
.5、多维数组 - 包含一个或多个数组的数组
$arr=array(array(1,2,3),array(4,5,6));
print_r($arr);
.6、数组的遍历(三种方法)
$arr=array(1,2,3,4,5,6);
for($i=0;$i<count($arr);$i++){
echo $arr[$i]."</br>";
}
$arr=array(1,2,3,4,5,6);
foreach($arr as $value){
echo $value."</br>";
}
$arr=array(
name=>array("id","name","pwd"),
value=>array("1","张三","111111")
);
while(list($name,$value)=each($arr)){
echo "$name=$value<br>";
}
/*上面第三个将会输出
id=1
name=张三
pwd=111111*/
.7、数组的排序
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序
.8、JSON类型数据
json_encode()
json_decode()
(6)对象(类比JAVA)- - -object
class Ball{
var $r=10;
function Ball($r){
$this->r=$r;
}
function play(){
return $this->r;
}
}
$ball=new Ball(10);
echo $ball->play();
(7)NULL
特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。
NULL 值标示变量是否为空。也用于区分空字符串与空值数据库。
可以通过把值设置为 NULL,将变量清空
(8)资源- - -resource
例如
$link = mysqli_connect("localhost","root","");
//这里面的$link变量里面存的类型就是数据库连接句柄,即资源。
资源类型是PHP4引进的,关于资源的类型,可以参考PHP手册后面的附录。
在使用资源时,系统会自动启动垃圾回收机制,释放不再使用的资源,避免内存消失殆尽。