文章目录
PHP学习
一、概述
PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言,吸取了C语言、Java和Perl等语言特点,目标是让开发者快速编写动态页面,不需要编译(可以与html混编),运行在服务端,运行需要php环境(windows的php study…)
二、基础环境搭建
使用win 2008虚拟机搭建。
- 下载php study
下载地址:https://www.xp.cn/download.html
phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境.该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等,总之学习PHP只需一个包。
- 解压
- 启动php study
可能缺少VC9运行库,需要安装VC9运行库。
成功启动:
查看端口号:已经启动80和3306端口
- 测试访问
访问在浏览器输入:localhost.,就可以打开“探针”
php探针是用来探测空间、服务器运行状况和PHP信息用的,探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。
也可以关闭虚拟机防火墙,在主机上访问虚拟机IP地址。
- mysql数据库连接测试
默认用户名:root,密码:root
三、目录文件
1. web根目录
在php study安装目录下的:WWW目录
该目录下有三个默认的文件:
- l.php:就是我们访问的php探针页面
- phpinfo.php:php的版本信息
<?php
phpinfo();
?>
- phpMyAdmin:通过互联网控制和操作MySQL。通过phpMyAdmin可以完全对数据库进行操作,例如建立、复制/删除数据等等。有了phpMyAdmin 就可以完全不使用mysql命令,直接使用phpMyAdmin就能管理mysql的所有数据和数据库。
2. Apache配置文件
目录:\Apache\conf\httpd.conf
3. Apache日志文件
目录:\Apache\logs
4. MySQL文件
将mysql添加到系统环境变量中,复制mysql\bin的路径添加到系统环境变量的path里即可。
mysql配置文件路径:E:\phpstudy\MySQL\my.ini
5. php配置文件
根据php版本,配置系统环境变量
php配置文件路径:E:\phpstudy\php\php-5.4.45\php.ini
四、基本语法
1. 第一个php程序
在WWW目录下新建一个.php文件:
<?php
phpinfo();
?>
测试访问:
2. 基本语法
- 开始标记:<?php
结束标记:?> - php用分号表示一个语句结束;
- 注释
// 这是单行注释
/*
多行注释
多行注释
...
*/
注意:php代码中的注释不会显示在浏览器的源代码里,php运行的环境是服务器,浏览器看到的是php引擎运行代码后的执行结果。
3. 变量
3.1 变量的声明
不需要声明变量,但需要初始化变量,当第一次给一个变量赋值时,才创建了这个变量,变量可以存储数字、文本、字符串或数组,可以重复使用一个变量。
php中变量必须使用一个$符号+变量名,使用=给变量赋值。
示例:
<?php
echo $name;
echo "<br />";
$name = "hello";
echo $name;
?>
运行结果:
- 注意:
- php代码是顺序执行;
- php中的错误类型:
Error:结束脚本执行
Warning:只提示,不影响执行;
Notice:一些语法错误提示
3.2 释放变量
unset(变量)
示例:
<?php
$name = "hello";
echo $name;
echo "<hr />";
unset($name);
echo $name;
?>
运行结果:
3.3 变量的命名
- 严格区分大小写;
- 字母、数字、下划线,但不能以数字开头;
- 尽量不要使用关键字
3.4 可变变量
$$
动态的设置和使用一个变量。
<?php
$name = "aaa";
$$name = "bbb";
echo $name;
echo "<hr />";
echo $aaa;
/*
简单理解:
aaa = "aaa" = $name
所以:$aaa = $$name = bbb
*/
?>
运行结果:
3.5 变量的引用赋值
&$
简单理解,就是给变量起了一个别名,引用赋值后,值一起变化!
示例:
<?php
$a = 10;
$b = $a;
$b = $b+1;
echo $a;
echo "|";
echo $b;
echo "<hr />";
// 相当于给变量a起了一个别名叫c,此后a随着c的改变而改变
$c = &$a;
$c = $c+10;
echo $a;
echo "|";
echo $c;
?>
运行结果:
3.6 变量类型
1. 布尔类型(bool)
<?php
$a = false;
$b = true;
echo $a;
echo $b;
echo "<hr />";
var_dump($a);
var_dump($b);
?>
运行结果:
- 注意:
- echo输出false时,输出为空;输出true为1;var_dump():数据类型和值;
- 以下的内容会被认为false,其他均会被认为true:
布尔值 false
0
浮点型 0.0
空白字符串和字符串0
没有成员的数组
NULL
2. 整数型(int)
存储整数
<?php
var_dump(1);
?>
// 结果:int(1)
3. 浮点型(float)
存储小数
<?php
var_dump(3.14);
?>
// 结果:float(3.14)
4. 字符串(string)
可以使用单引号、双引号、定界符定义。
在单引号定义中引入单引号需要转义(’),单双引号中引入特殊字符需要转义,如(\或者美元符号);
单引号定义中,$原样输出,双引号中为变量的开始,需要将变量用{}括起来。
<?php
$name = 'zhangsan';
$str01 = "hello,{$name}";
var_dump($str01);
echo "<hr />";
$str02 = " \\ \$";
var_dump($str02);
?>
运行结果:
定界符:
<<<起个名字(一般跟大写字母)
内容
以名字加分号结束;
定界符开始和结束后面不能有任何字符包括空白和注释!!
<?php
$str =<<<TEST
This is a string!$\*
TEST;
var_dump($str);
?>
运行结果:
也可以写html代码:
<?php
$str =<<<TEST
<h1 style="color:white;background-color:black">This is a string!</h1>
TEST;
echo $str;
?>
运行结果:
3.7 常量
define()
常量是一个简单的标识符,惯例都是大写字母,定义的常量不能改变或取消定义,作用于全局,只包含bool、int、float、string类型的数据。
<?php
define("NAME","HAHA");
echo NAME;
?>
运行结果:HAHA
预定义常量
__FUNCTION__ // 当前函数名
__CLASS__; // 当前类名
__METHOD__; // 当前对象的方法名
<?php
define("NAME","HAHA");
echo NAME;
echo "<br \>";
echo __FILE__; // 当前文件名
echo "<br \>";
echo __LINE__; // 当前代码行数
echo "<br \>";
echo PHP_OS; // UNIX或WINNT
echo "<br \>";
echo PHP_VERSION;// 当前PHP版本
echo "<br \>";
echo DIRECTORY_SEPARATOR; // 操作系统的目录分隔符(\或者/)
?>
运行结果:
3.8 运算符
- 算数运算符
-$a # 取反
++$a --$a # 自增和自减和java一样
- 比较运算符
返回true或false
== # 等于
=== # 全等(值和类型)
!= # 不等
!== # 不全等
<> # 不等
<=> # 组合比较
- 逻辑运算符
! # 非
and && # 与
or || # 或
xor # 异或
- 字符串运算符
.
拼接字符串或变量
<?php
$name = "zhangsan";
$hello = "hello";
echo $hello.",".$name;
?>
运行结果:hello,zhangsan
- 赋值运算符
= -= += /= *= %=
# 这些都和java的一样
.= # 字符串赋值运算符
# 例如:
$hello .= $name;
# 相当于:
$hello = $hello.$name;
- 其他运算符
- 三元运算符
条件?条件为true:条件为false
示例:
$a = 10>20?10:20;
echo $a;
$b = 10<20?10:20;
echo $b;
运行结果:20 10
- 将字符串当作命令执行
`字符串`
示例:
`whoami`;
`ping baidu.com`;
运行结果:
- 屏蔽提示警告(@)
<?php
echo @$hello;
?>
运行结果:屏蔽掉Notice提示
3.9 流程控制
3.9.1 if语句
<?php
$num = rand(0,100);
if($num >= 90){
echo "A+"."|".$num;
} elseif($num >=80){
echo "A"."|".$num;
} elseif($num >=70){
echo "B"."|".$num;
} elseif($num >=60){
echo "C"."|".$num;
} else{
echo "D"."|".$num;
}
?>
运行结果:
3.9.2 switch语句
<?php
$day = rand(1,10);
switch($day){
case 1:
echo "Monday"."|".$day;
break;
case 2:
echo "Tuesday"."|".$day;
break;
case 3:
echo "Wednesday"."|".$day;
break;
case 4:
echo "Thursday"."|".$day;
break;
case 5:
echo "Friday"."|".$day;
break;
case 6:
echo "Saturday"."|".$day;
break;
case 7:
echo "Sunday"."|".$day;
break;
default:
echo "error"."|".$day;
}
?>
3.9.3 循环执行
while(判断条件){
满足条件执行的语句;
}
do{
执行语句
}while(判断条件)
区别:while先判断再执行,do…while先执行再判断。
for循环:打印9*9乘法表
for($i = 1;$i <= 9;$i++){
for($j = 1;$j <= $i;$j++){
echo "{$i}*{$j}=".$i*$j." ";
}
echo "<br />";
}
3.9.4 特殊控制
break # 跳出循环
break 2 # 跳出两层循环
continue # 跳出本次循环
# 结束当前程序,括号里可以写字符串,结束时会输出它
die()
exit()