1.PHP的用途
PHP,超文本预处理器,是一种通用开源脚本语言,吸收了C语言,java和perl的特点,主要适用于web开发领域.
php是将程序嵌入到html(标准通用标记语言下的一个应用) 文档中去执行,执行效率比html要高许多.
1.1.1 PHP 环境安装
-
windows环境安装.
-
linux环境安装.
-
集成环境包安装(应用程序)
集成环境包比较多.以下的这些全是各种英文名.只不过代表的是不同集成环境包的名字,如下所示:
appserv ------ phpstud ------ apmserv
xampp ------wampserver -----等等
选择好的工具对于我们入门学习者来说,操作简单易于上手,我们下面使用集成环境包是:PHPstudy.
PHPstudy 的下载地址http://www.phpstudy.net/
1.1.2 写代码的工具选择
这里我推荐的工具是 NotePad++ 写完的有颜色高亮显示,
下载方式百度搜索NotePad++就行了.
1.1.3 php基本语法
- 从phpinfo函数学习
示例:
<?php
phpinfo()
?>
安装phpstudy软件程序,找到程序目录中www子目录,在www目录中编写上述test.php文件,用浏览器访问测试代码文件
127.0.0.1/test.php
得到以下图例:
php 是一个函数(功能),会显示一个当前电脑(服务器)的详细的信息,简单来说就是一个连接服务器的中间商.
1.1.3.2 PHP变量与常量
一. PHP变量
变量是可以便于修改调整数据信息,某些特定变量具有特定功能
<?php
$iphone6 = 5880;
$iphone6plus =6088;
echo $iPhone6 + $iPhone6plus; // echo 是php里最常用的一个输出,显示功能的命令.
?>
//echo 是一个显示命令,把得到的结果显示出来.
变量的几个特点:
1.必须要以
开
始
.
如
变
量
x
就
要
写
成
开始.如变量x就要写成
开始.如变量x就要写成x
2.变量的首字母不能以数字开始
3.变量的名字区分大小写
4.变量不要用特殊符号,中文.
变量分类: 可变变量, 外部变量, 怀境变量
1.可变变量举例:
<?php
//定义了一个变量叫作 $shu 将$shu这个变量的值设为字符串的biao
$shu = 'biao';
//定义了一个【变量】$biao。将他的值设置为鼠标
$biao = '鼠标';
//$$shu 就是可变变量:为什么是两个$呢因为变了两次
echo $$shu;
?>
// $$shu = 鼠标
2.外部变量举例:
php的外部变量是php在使用过程中规定好的一些变量.
<html>
<head>
</head>
<body>
<!-- 这一行method 对应得知改为了post -->
<form action ="reg.php" method = "post">
<input type = "text" name ="username"/>
<input type ="password" name ="pwd"/>
<input type ="submit" value ="提交"/>
</form>
</body>
</html>
<?php
// $_post后面加上中括号,将username 作为字符串放在中括号里面,就得到了表单里面的<input type ="text" name ="username"/> 的值
$u = $_post ['username'];
echo $u. '<br/>';
//$_post['pwd'] 得到表单<input type ="text" name = "username"/>的值
$passwd = $_post['pwd'];
echo $passwd. '<br/>';
?>
//使用上面的html我们可以将数据提交到一个叫 reg.php里面去.
另外我们还总结了一些外部变量.
全局变量名 | 功能说明
$_cookie 得到会话控制中cookie 传值
$_session 得到会话控制中session的值
$_files 得到文件上传的结果
$_get 得到get 传值的结果
$_post 得到post 传值的结果
$_request 既能得到get 的传值结果,也能得到post传值的结果
- 环境变量举例:
环境变量(布置环境的代码) 我们主要用的有"$_server"环境变量.
<?php
phppinfo();
?>
其他环境变量:
$_server[“request_method”] 请求当前php页面的方法
$_server[“request_uri”] 请求的uri
$_server[“server_software”] 用的是哪一种服务器
$_server[“remote_addr”] 客户的ip地址
$_server[“server_addr”] 当前服务器的IP地址
$_server[“script_filename”] 主前请求文件的路径
$_server[“http_user_agent”] 当前访问这个网址的电脑和浏览器的情况
$_server[“request_time”] 当前的时间
二. php常量
常量: 长久不变的值.
define(常量名,常量值)
<?php
define('my_name','php 中文网');
echo my_name;
//下面是错误的调用方式
echo '我的名字是my_name';
//正确的调用方式这么写
echo'我的名字是' . my_name;
?>
//下面是演示图片:
此外系统还有一些内置常量,这些常量都是规定好的.
line---------当前所在的行
pile---------当前文件在服务器的路径
functioin—当前函数名
class-------当前类名
method----当前成员方法名
php_os----php运行的操作系统
php_cersion----当前php的版本
trait---------trait的名字,php5.4新加
dir-----------文件所在的目录
NAMESPACE----当前命名空间的名称(区分大小写)
1.1.3.3 PHP 注释
注释的作用: 代码全是英文并且很长时间长了会忘,所以要加上注释.
-
1.单行注释
-
// (表示只注释一行)
##号也表示单行注释,用的比较少
2.多行注释
/*多行注释
*/ 这里是注释区域代码
举例:
<?php
$iphone6 = 5880;
//这里是单行注释
$iphone6plus =6088;
echo $iPhone6 + $iPhone6plus; // echo 是php里最常用的一个输出,显示功能的命令.
?>
<?php
/*
作者:nogirl
时间:2020.9.24
这是个例子是骗你的
*/
?>
2.1.3.3 PHP数据类型
php中一共有八种数据类型,四种标量数据类型:
1.boolean (布尔类型) — 判断型代码,只有两个值: 对和错
<?php
//声明一个变量(拼音)为布尔
$buer=true;
//声明一个变量(英文)
$bool=false;
?>
integer (整型) ---- 整型数据类型只能包含整数,这些数据类型可以是负数或者正数,英文简写 --(int)
- 1整型分为 --10 进制
<?php
//说明变量 整数, 英文 int
//$int = 1000
$zhengshu = 1000;
echo $zhengshu;
?>
演示图:
1.2-- 8进制
<?php
//8进制的取值范围最大为 0-7,即0,1,2,3,4,5,6,7
$bajinzhi = 033145;
echo $bajinzhi;
?>
演示图:
1.3—16进制
<?php
//16进制的取值范围最大为0-f,即0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
$shiliu = 0x6ff;
echo $shiliu;
?>
演示图:
2. float/double (浮点型):
所谓浮点类型,可以理解为:我们数学里面的小数。
声明方式分为两种:普通声明和科学声明
<?php
//声明变量 fudian 的值为12121.3132
$fudian = 12121.3132;
echo $fudian;
?>
<?php
//声明变量$fl 的值为0.8873
$fl = 0.8873;
var_dump($fl);
?>
3. string (字符串型):
字符串有三种方式 ,用单引号声明,用双引号声明,用字符界声明.
3.1单引号声明
<?php
//声明字符串变量$zhifu
$cj = '曾经有份真挚的爱情摆在我的面前,我没有珍惜,
当我失去时才感到后悔莫及,如果再给我一次机会我会说我爱你,
如果要加上一个期限我希望是一万年';
echo $cj;
?>
3.2 双引号声明
<?php
//声明字符串变量$str
$xs = "我们一起去上班吧";
echo $xs
?>
3.3. 字符界声明
<?php
$dj = <<<ABC
包租婆
怎么又没水了呢<br />
<i>洗澡洗到一半</i>
<h1>水费不要钱啊<h1>
ABC;
echo $dj
?>
-
attay (数组) :一组相同类型的集合
-
和object(对象) : 对象是一个实力,使用new命令创建一个对象
-
resource (资源) : 资源是一种特殊的变量,保存在外部资源的一个应用,资源是通过函数来进行建立的
-
null (空白) : 特殊的值,表示变量没有值,任何变量的初始值都是null
五. php数据类型之查看和判断数据类型
查看数据类型
1.gettype(传入一个变量) 能够获得变量的类型
2.var_dump(传入一个变量) 输出变类型和值
<?php
//声明一个变量99
$ss =99
$rr = gettype($ss);
echo $rr;
?>
运行图例:
<?php
//多换几个类型试试
$xx = '你喜欢迪丽热巴还是古力娜扎?';
var_dump($xx);
?>
: --不放图例了
—判断数据类型
我们使用is_* 系列函数,is_types这一系列的函数,来进行判断某个东西是不是某个类型.
is_int是否为整型
is_bool 是否为布尔
is_float 是否是浮点
is_string 是否是字符串
is_array 是否是数组
is_object 是否是对象
is_null 是否为空
is_resource 是否为资源
is_scalar 是否为标量
is_numeric 是否为数值类型
is_callable 是否为函数
<?php
//is_* 系列函数有个特点,就是如果是这个类型就返回的是真。不是这个数据类型就返回的是假
//声明类型为假
$fo = false;
if(is_bool($fo)){
echo '执行真区间';
}else{
echo '执行假区间';
}
//检查未声明的变量$p是否为空,为空就执行真区间
$p =boy;
if(is_null($p)){
echo '执行真区间';
}else{
echo '执行假区间';
}
echo "<br/>";
//字符串类型的数值,看看执行的是真还是假
$str = '18.8';
if(is_numeric($str)){
echo '执行真区间';
}else{
echo '执行假区间';
}
echo "<br/>";
//把sca的值换成整型、浮点、布尔和字符串试试
$sca = true;
//如果为标量,执行真区间
if(is_scalar($sca)){
echo '执行真区间';
}else{
echo '执行假区间';
}
echo "<br/>";
//换成echo,is_int试试,为什么echo执行假区间呢?
if(is_callable('var_dump')){
echo '执行真区间';
}else{
echo '执行假区间';
}
?>
不放图例了
3.1.3.3 php流程控制值if else语法
<?php
//我们定义一个泡到美女的变量($pao)为true,意思为泡到了
$pao = true;
if($pao){
echo '我愿意去死';
echo '林志玲,我爱死你了。';
}else{
echo '我不愿意去死';
echo '凤姐,我肯定不会爱你的';
}
//if...else执行结束,后续代码
?>
网络不好图例上传不了了
4.1.3.3 php 算术运算
符号 | 说明 | 举例 |
---|---|---|
+ | 加号 | $x + $y |
- | 减号 | $x - $y |
* | 乘号 | $x * $y |
/ | 除号 | $x / $y |
% | 取余也叫取模, 求模 | $x % $y |
<?php
$x = 99;
$y = 99;
echo $x + $y;
?>
//echo $x + $y=188
一. php自加自减
自加自减,就是把自己加1,或者减1。如果你学习过其他编程语言。你会发现,此处的用法又是计算机里面的一个规定。可以这样用,用起来更加简洁。
符号 | 说明 |
---|---|
$x++ | 先赋值后加 |
$x– | 先赋值后减 |
++$x | 先加后赋值 |
–$x | 先减后赋值 |
例子来了:
<?php
$x =5;
//先赋值后加,先将$x的值给$y, $X的值为5,所以将$x的值赋给$y,$y也为5
$y = $x++;
//$x的结果输出为6,因为赋值给$y后,$x自己又把自己进行了+1操作。所以,$x的结果为6
echo $x;
echo $y;
//$y得到的是没有加一的x,所以y是5
二 . php比较运算符
说明 | 符号 |
---|---|
大于 | > |
小于 | < |
大于等于 | >= |
小于等于 | <= |
不等于 | != |
等于 | ==(赋值是=号,所以= =就是为等于) |
全等(判断类型等于) | === |
全不等(判断类型不等于) | !== |
<?php
$x = 5;
$y = 6;
//因为5大于6不成立,所以为错的。即为false执行了假区间
//若是if($x < $y)这样的话5小于6,按照常理来说就是正确的,即为执行真区间
if($x > $y){
//真区间
echo '变量x 大于 变量y,成立';
}else{
//假区间
echo '变量x 大于 变量y,不成立';
}
?>
三 . php逻辑运算
举例 | 说明 | 详细说明 |
---|---|---|
$x and $y | 逻辑与(并且关系) | $x和 $y为真则返回真 |
$x && $y | 同上 | 同上 |
$x or $y | 逻辑 或 | $x, $y 均为false时为假,其他情况全为真 |
$a ll $b | 同上 | 同上 |
!$x | 逻辑非 | 取反,即true变为false,false变为true |
$x xor $y | 逻辑异或 | 相同取false,相异为true |
<?php
$x = '真';
$y = '假';
//逻辑与(并且),要求两个都为真才执行真区间,所以代码中执行假区间
if($x && $y){
echo '执行了真区间';
}else{
echo '执行了假区间';
}
?>
四 . php位运算
<?php
//$x二进制值为:
$x = 5;
//$y二进制值为:
$y = 8;
//结果为13
echo $x ^ $y;
?>
//x=5 ---- 5的二进制是101
//y=8 ----8的二进制是100,转10进制就是,12的2次方+02的1次方+0*2的0次方
五、php三元运算符和其它运算符
三元运算符,相当于是if…else结构。不过三元运算符的写法更加简洁,语法格式如下:
符号 | 说明 |
---|---|
? | 判断是真还是假 |
`反引号 | 反引号总监插代命令,执行系统命令,等价于shell_exec函数 |
@ | 单行抑制错误,把这一行的错误不让它显示出来了,效率低不建议使用 |
=> | 数组下标访问符 |
-> | 对象访问符 |
instanof | 判断某个对象是否来自某个类,如果是的返回真,如果不是返回假 |
<?php
$x = true;
$x ? $y = 5 : $y = 6;
//输出5
echo $y;
?>
<?php
echo '<pre>';
echo `ipconfig`;
echo '</pre>';
?>
1.1.4 php流程控制
if条件结构流程
if 语句 - 在条件成立时执行代码
if…else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
if…elseif…else 语句 - 在若干条件之一成立时执行一个代码块
<?php
$t=date("H");
if ($t<"20")
//如果当前时间小于 20,下面的实例将输出 "Have a good day!"
{
echo "Have a good day!";
}
?>
PHP - if…elseif…else 语句
<?php
$t=date("H");
//如果当前时间小于 10,下面的实例将输出 "Have a good morning!"
if ($t<"10")
{
echo "Have a good morning!";
}
//如果当前时间不小于 10 且小于 20,则输出 "Have a good day!"
elseif ($t<"20")
{
echo "Have a good day!";
}
else
{
//否则输出 "Have a good night!"
echo "Have a good night!";
}
?>
if语句多种嵌套
<?php
//0表示工作秘书,1表示生活秘书
//用代码模拟随机产生当前的工作是生活秘书的还是工作秘书的
$mishu = rand(0,1);
if($mishu){
//下雨和不下雨的状态,随机产生
//下雨状态为1
//不下雨状态为0
$xiyu = rand(0,1);
if($xiyu){
//是否购买雨伞
$you = rand(0,1);
if($you){
echo '下雨天,已购买不用买雨伞';
}else{
echo '下雨天,未购买,需要买雨伞';
}
}else{
//是否购买防晒霜
$you = rand(0,1);
if($you){
echo '没下雨,有防晒霜';
}else{
echo '没下雨,需要准备防晒霜';
}
}
}else{
//是否准备好了会议议程
$shifou = rand(0,1);
if($shifou){
echo '已准备好,可以随时出发';
}else{
echo '没有准备好,需要打印,延迟出发';
}
}
?>
下面是运行图例:
2.1.4.2 switch 语句的使用
<?php
$favcolor= rand(1,3);
switch ($favcolor)
{
case "1":
echo "你喜欢的颜色是红色!";
break;
case "2":
echo "你喜欢的颜色是蓝色!";
break;
case "3":
echo "你喜欢的颜色是绿色!";
break;
default:
echo "你喜欢的颜色不是 红, 蓝, 或绿色!";
}
?>
3.1.4.2 do while循环语句的使用
do…while与while的语法结构基本一样,也是一个布尔型循环,功能也基本一样。
基本语法规定如下:
do {
//代码块
}while (判断);
//do…while与while的区别是,它们的值的检查时机不同。
do - while 不论while判断是否成立,先执行一次代码代码块循环语句,保证会执行一次(表达式的真值在每次循环结束后检查)
然而我们之前的while循环会检查布尔判断区域,成立则执行,不成立则不执行.
<?php
$i = 1;
do {
echo $i;
$i++;
} while ($i < 90);
?>
4.1.4.2 for循环语句的使用
下面的实例定义一个初始值为 i=1 的循环。只要变量 i 小于或者等于 5,循环将继续运行。循环每运行一次,变量 i 就会递增
<?php
for ($i=1; $i<=5; $i++)
{
echo "数字为 " . $i . PHP_EOL;
}
?>
5.1.4.2 goto循环语句的使用
<?php
for($i=0; $i<100; $i++) {
echo '第'. $i .'周往返北京大连<br />';
//这里$i等于17,i的自增在加到17的时候就会停止
if($i == 17){
goto end;
}
}
end:
echo '集团公司要求停止此项';
1.1.5 PHP的函数基本语法
<?php
function php_cn(){
echo '好好学习';
}
//php_cn这个函数,显示出来了三段:好好学习
php_cn();
php_cn();
php_cn();
?>
备注 |
---|
函数名只能是字母,数字,下划线的组合,并且之间不能包含空格,数字不能放在变量名首位. |
函数名与变量命名规则一样,但是不同的是:函数名不区分大小写 |
函数提的参数若是定义了,为传参数,代码会报错 |
函数后的参数如果有默认值,参数可以不填,代码也不会报错 |
函数后的参数可以写多个 |
函数后如果有默认值和无默认值的参数,通常把无默认值的参数写在最前面 |
函数体的变量与函数体外的变量没有关系 |
函数体中若有return,return 后的代码不执行 |
函数执行完后,return 可把函数体内的值,带带函数体外 |
函数的执行没有顺序关系,可以在定义处之前的位置调用 |
函数不能重载 |
一. 超全局变量
全局变量名 | 功能说明 |
---|---|
$_ cookie | 得到会话控制中cookie传值 |
$_session | 得到会话控制中session的值 |
$_files | 得到文件上传的结果 |
$_get | 得到get传值的结果 |
$_post | 得到post传值的结果 |
$_request | 即能得到get的传值结果,也能得到Post传值的结果 |
<html>
<head>
<title>超全局数组实验</title>
</head>
<body>
<!--先用POST来实验,以后你可以改成GET哟 -->
<form action="glob.php" method="post">
<input type="text" name="hongniu" /><br />
<input type="submit" value="提交" />
//我们将html的内容通过form表单提交给了glob.php页面
</form>
</body>
</html>
<?php
//你懂的这里是接收glob.php
function demo(){
echo $_POST['hongniu'];
}
demo();
?>
二、文件包含函数
在实际开发中,常常需要把程序中的公用代码放到一个文件中,
使用这些代码的文件只需要包含这个文件即可。
这种方法有助于提高代码的重用性,
给代码的编写与维护带来很大的便利。
在PHP中,有require、require_once、include、include- once四种方法包含一个文件。
函数 | 包含失败 | 特点 |
---|---|---|
Include | 返回一条警告 | 文件继续向下执行。通常用于动态包含 |
Require | 一个致命的错 | 代码就不会继续向下执行。通常包含极为重要的文件,整个代码甭想执行 |
Include_once | 返回一条警告 | 除了原有include的功能以外,它还会做once检测,如果文件曾经已经被被包含过,不再包含 |
Require_once | 一个致命的错 | 除了原的功能一外,会做一次once检测,防止文件反复被包含 |
函数名 | 描述 | 实例 | 输入 | 输出 |
---|---|---|---|---|
abs() | 求绝对值 | $abs = abs(-4.2); //4.2 | 数字 | 绝对值数字 |
ceil() | 进一法取整 | echo ceil(9.999); // 10 | 浮点数 | 进一取整 |
floor() | 舍去法取整 | echo floor(9.999); // 9 | 浮点数 | 直接舍去小数部分 |
fmod() | 浮点数取余 | "$ x = 5.7; $ y = 1.3;$ r = fmod($x, $y);// $r equals0.5, because 4 * 1.3 + 0.5 = 5.7 " | 两个浮点数,x>y | 两个浮点数,x>y |
pow() | 返回数的n次方 | echo pow(-1, 20); // 1 | 基础数 n次方 | 乘方值 |
round() | 浮点数四舍五入 | echo round(1.95583, 2);// 1.96 | 一个数值 | 保留小数点后多少位,默认为0 舍入后的结果 |
sqrt() | 求平方根 | echo sqrt(9); //3 | 被开方的数 | 平方根 |
max() | 求最大值 | “echo max(1, 3, 5, 6, 7); // 7 echo max(array(2, 4, 5)); // 5” | 多个数字或数组 | 返回其中的最大值 |
min() | 求最小值 | min | 多个数字或数组 | 返回其中的最小值 |
min() | 求最小值 | min | 多个数字或数组 | 返回其中的最小值 |
函数名 | 描述 | 实例 | 输入 | 输出 |
---|---|---|---|---|
rand() | 随机数 | echo rand() | 最小/最大,随机数 | 随机返回范围内的值 |
pi() | 获取圆周率值 | echo pi(); // 3.1415926535898 | 无 | 获取圆周率 |
字符串常用涵数