了解php基础
- 概述
- 安装环境
- php基础语法
- 变量
- 运算符
- 条件与分支
- 循环
- 数组
概述
php是什么?
PHP是超文本预处理器(Hypertext Preprocessor)的简称,是一种用于创建动态性交互网站的强有力的语言。
其语法利用借鉴了 C,Java 和 Perl,非常容易学习。该语言的主要目标是让 Web 开发人员可以很快写出动态生成的网页,如用于开发留言板、购物网站、论坛等,但 PHP 的功能远不止如此。PHP是如此的易用且功能强大,因此深受广大 Web 开发人员的喜爱。对比其他 Web 开发语言,PHP 的市场份额也越来越大。据统计,世界上有超过 60% 的网站后台语言采用 PHP。
PHP官方网站: www.php.net 复制后新建标签页打开
LAMP
LAMP是 Linux+Apache+Mysql+Perl/PHP/Python 的简称。
在过去的几年里,Linux,Apache,MySQL 和 Perl/PHP/Python 这些组件的兼容性不断完善,在一起的应用情形变得普遍。目前,几乎在所有的 Linux 发布版中都默认包含了这些产品。LAMP 平台常用来作为一种标准开发环境,也是目前最强大的网站解决方案。
LAMP无论是性能、质量还是价格都将成为企业、政府信息化所必须考虑的平台。
PHP运行原理
在 Web 服务器上,安装上 PHP 软件之后,由Web服务软件(如Apache、IIS等)提供对 PHP 的解析支持。
PHP 程序通常以 php 为后缀名。我们可以在 php 文件里面写上一些必要的逻辑过程,如 数据读取 、 用户登录检测 等。当用户通过浏览器访问这些 php 文件的时候如http://www.abc.com/login.php这个 URL 地址,PHP 软件在 Web 服务软件的支持下,会对 php 文件中的逻辑进行解析运行。最后将执行的结果返回给浏览器即用户查看到的界面,返回的结果为 HTML 格式。
PHP 开发环境安装
PHP 学习环境
- 学习PHP,我们需要准备一个可以支持PHP运行的环境:
- PHP编译器:支持 PHP 运行的核心
- Apache Web 服务器:提供 Web 服务,并支持 PHP 解析
- MySQL数据库:用于学习 PHP 操作 MySQL 数据库
- 操作系统:默认为个人PC,安装 Windows 2000 以上系统
- 编辑工具:EditPlus 或IDE工具如 Zend Studio 或 sublime3 HbuilderX 、 vscode等
- 浏览器:IE6 或以上版本、Firefox 、chrome谷歌浏览器版
- 文件存储位置:E:html
注意:文件存储位置不是特定的,只要您的 Apache Web 服务器能解析到就行,在此设置是为了跟XHTML+CSS教程保持一致。
phpStudy集成环境
phpStudy 2018版本(php一键安装包),集成PHP7,16种组合,超全大合集
2018是一款非常强大的php环境调试工具,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。对学习PHP的新手来说,WINDOWS下环境配置是一件很困难的事;对老手来说也是一件烦琐的事。因此无论你是新手还是老手,该程序包都是一个不错的选择。 下载地址
phpstudy 安装教程
phpstudy2018的安装步骤
1、phpstudy2018软件的下载:
下载地址:http://www.phpstudy.net/download.html
下载后打开存放软件的文件夹,对软件进行解压。
2、phpstudy2018软件的安装:
左键双击软件启动程序,选择要安装软件的文件夹,软件尽量不要安装在c盘。
选择好安装目录后,点击是,进行安装。等待一小段时间软件就会安装完成啦!
3、启动服务器
PHP 基本语法
PHP 书写格式
从一个例子开始。
启动编辑器,创建一个php文件并键入如下代码:
<?php
echo "你好!";
?>
将该文件命名为 test.php 并存储于 D:\phpStudy\PHPTutorial\WWW 目录下。 前提是phpstudy默认安装在d盘
在浏览器地址栏里访问该 php 文件:http://127.0.0.1/test.php,输出结果如下:
你好!
我们通过浏览器查看网页的源代码,也只是:
你好!
在该例子中,我们以 echo 指令输出一个字符串“你好!”。
从这个例子可以看出:
- PHP 文件或 PHP 代码段以“<?php”开头,以“?>”结束,中间为php代码
- 每一个指令集以 ; 符号结束
- 浏览器得到的为 PHP 解析器执行完 php 代码后的结果,网站浏览者不能查看到 php 文件的原始代码
当然,要输出标准的html代码,可以把上例完善为:
`<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<p>
<?php
echo "你好!";
?>
</p>
</body>
</html>`
可见,PHP 代码可以和 HTML 代码混写。
echo 是 PHP 内置的一个指令,用于输出1个或多个字符串,和 echo 类似的还有 print。
对比学习
- js与php语法基本一致
js | php |
---|---|
js代码用 < script> < /script> 包括 | php 用户 echo输出 |
js用document.write输出 | js用document.write输出 |
js用;结束一行代码 | php必须用;结束一行代码 |
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
PHP 字符串输出
- 用于字符串输出的函数主要有:
- echo():输出一个或多个字符串
- print():输出一个字符串
- printf():输出格式化字符串
echo()
echo()是指令而不是函数,它没有返回值,可以输出一个或多个字符串。
语法:
void echo ( string arg1 [, string ...] )
例子:
<?php
$foo = "foobar";
$bar = "barbaz";
echo $foo,$bar; // 输出"foobarbarbaz"
echo "<br />";
echo $foo[3]; // 输出第4个字符"b"
echo "<br />";
echo "foo is $foo"; // 输出"foo is foobar"
echo "<br />";
echo 'foo is $foo'; // 输出"foo is $foo"
?>
说明
- 双引号内的变量会被解释,而单引号内的变量则原样输出
- 字符串计算是从 0 开始计数
print()
print() 用于输出一个字符串。print() 是函数,返回一个整型,但只能有一个参数,其用法同 echo ,但不能输出数组和对象。
语法:
int print( string arg )
printf()
printf() 用于格式化输出字符串,返回一个整型。
语法:
int printf(string format, arg1, arg2, ...)
format 为字符串以及变量的格式化方式,arg1 为插入第一个%符号处的参数,agr2等以此类推。
格式化方式说明: 格式化方式 | 说明 |
---|---|
%d | 十进制有符号整数 |
%u | 十进制无符号整数 |
%f | 浮点数 |
%s | 字符串 |
%c | 单个字符 |
%p | 指针的值 |
%e | 指数形式的浮点数 |
%x/%X | 无符号以小/大写十六进制表示的整数 |
%o | 无符号以八进制表示的整数 |
%g | 自动选择合适的表示法 |
例子:
<?php
$str = "This";
$number = 31;
printf("%s month has %u days",$str,$number); //输出 This month has 31 days
?>
PHP 变量
PHP变量用于存储字符、数字、数组甚至对象资源等,以便在我们需要的地方使用。
定义一个变量的语法:
$变量名 = 值;
使用变量的例子:
<?php
$var_char = "你好!";
echo $var_char;
?>
执行这段代码输出的结果是:
你好!
常见的php数据类型 字符串、整型、浮点型、布尔型
<?php
// 存储一个人的名字用字符串类型
$name = "mumu";
// 存储一个人的年龄用 整型
$age = 18;
// 存储价格用浮点型,浮点几乎可以表达任何类型数字
$price = 3.5;
/*
布尔类型分为两类:
TRUE:表示事实成立,为真,也可写作true
FALSE:表示事实不成立,为假,也可写作false
*/
// 存储一个开关状态用 布尔类型
$flag = TRUE;
?>
变量的命名
从这个例子可以看出,变量名以 $ 开始,标明这是一个变量。变量名以字母(a-z、A-Z)或者下划线 _ 开始,后面可以跟任意字母或数字以及下划线,但不能是空格。
如下这些变量名是有效的:
$var_char
$varChar
$_varChar
$var_char5
提示
关于变量命名,我们建议变量名以标明其实际语意的组合为佳,如 $my_name 或 $myName 格式。
延伸阅读
与 C 语言等强类型的编程语言不同,PHP 是一门松散类型的语言,即不需要在设置变量之前声明该变量。根据变量被设置的方式,PHP 会自动地把变量转换为正确的数据类型,且变量会在使用时被自动声明,这一属性给 Web 编程带来了极大的灵活性。
案例
本次班级的最高分98.5分,有曾木木获得。用合适的变量存储并输出如下
本次考试成绩最高分:98.5
最高分得主:曾木木
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>最高得分</title>
</head>
<body>
<?php
$score = 98.5;
$name = "曾木木";
echo "本次考试成绩最高分",$score,"<br>";
echo "最高分得主:$name";
?>
</body>
</html>
PHP 运算符
PHP 运算符主要包括:
- 算术运算符
- 赋值运算符
- 比较运算符
- 三元运算符
- 逻辑运算符
- 字符串运算符
- 错误控制运算符
算术运算符
运算符 | 例子 | 例子 | 运算结果 |
---|---|---|---|
+ | 加 | x = 2 ; x = 2; x=2;y = $x+1; | $y = 3 |
- | 减 | x = 2 ; x = 2; x=2;y = $x-1; | $y = 1 |
* | 乘 | x = 2 ; x = 2; x=2;y = $x*3; | $y = 6 |
/ | 除,返回结果为浮点类型 | x = 6 ; x = 6; x=6;y = $x/3; | $y = 2 |
% | 求余,返回结果为浮点类型 | x = 6 ; x = 6; x=6;y = $x%4; | $y=2 |
++ | 递加,分为前加和后加对布尔值和 NULL 无效 | x = 2 ; + ( 前 加 ) x = 2;+(前加) x=2;+(前加)x++;(后加) | $x = 3 |
- - | 递减,分为前递减和后递减对布尔值和 NULL 无效 | x = 2 ; − − x = 2;-- x=2;−−x;(前减)$x–;(后减) | $x = 1 |
对于前加和后加,执行后的结果都是变量加1,其区别在于执行时返回结果不一样,参考下面两个例子:
<?php
$x = 2;
echo $x++; //输出2
echo $x; //输出3
$x = 2;
echo ++$x; //输出3
echo $x; //输出3
?>
递减同理。
赋值运算符
赋值运算符“=”用于赋值运算,赋值运算符的作用在于把右边的值赋值给左边变量:
$x = 2;
该例子将整型值 2 赋值给变量 $x。
赋值运算符其他用法
赋值运算符可以嵌套使用:
<?php
$y = ($x = 2) + 5; //结果为 $x=2,$y=7
?>
赋值运算符的一些变形使用方法:
$y += $x;
实际上它等同于:
$y = $y + $x;
同理有:
$y -= $x;
$y *= $x;
$y /= $x;
$y %= $x;
$y .= $x; // . 为连接运算符,见字符串运算符
比较运算符
运算符 说明 例子 运算结果
== 等于 2 == 3 FALSE
!= 不等于,也可写作<> 2 == 3 TRUE
大于 2 > 3 FALSE
< 小于 2 < 3 TRUE
= 大于等于 2 >= 3 FALSE
<= 小于等于 2 <= 3 TRUE
比较运算符也可用于字符串比较。
三元运算符
三元可以视作是特殊的比较运算符:
(expr1) ? (expr2) : (expr3)
语法解释:在 expr1 求值为 TRUE 时整个表达式的值为 expr2,否则为 expr3。
例子:
y = ( y = ( y=(x == 2) ? x : 1 ; 该 例 子 判 断 变 量 x : 1; 该例子判断变量 x:1;该例子判断变量x的值是否等于2,如果 x 等 于 2 , 那 么 x等于2,那么 x等于2,那么y的值就等于 x ( 也 就 是 等 于 2 ) , 反 之 x(也就是等于2),反之 x(也就是等于2),反之y就等于1。
提示
为了避免错误,将三元运算符各表达式用括号括起来是个不错的主意。
逻辑运算符
运算符 说明 例子 运算结果
&& 逻辑与,也可写作 and $x = 2;
$y = 6;
$x && $y > 5 FALSE
|| 逻辑或,也可写作 or $x = 2;
$y = 6;
$x && $y > 5 TRUE
! 逻辑非,取逻辑的反面 $x = 2;
y
=
6
;
!
(
y = 6; !(
y=6;!(x > $y) TRUE
连接运算符
字符串运算符主要指连接运算符“.”,它将连接其左右参数字符串。
var_dumo() 查看变量的类型
使用变量的时候也要带$符号
类型强制转换
(int)(变量)
(string)(变量)
(float)(变量)
(bool)(变量)
循环
while(表达式){
语句:
}
for(初始条;判断;更改条件){
语句;
}
数组
创建
$a1=[...]
$a2=array(...)
$a3=array(key=>value,k2=>v2)
删除
unset($a1)
unset($a1[2])
添加
$al[]=88;
$a2["leg"=2];
遍历
foreach($arr as $value){}
foreach($arr as k e y = > key=> key=>value){}
常用方法
array_push()添加
array_pop()删除
sort()正序
reort()倒序
array_search() 查询
array_reverse()翻转
implode() 连接为字符串
explode()字符串翻个为数组
shuffle()乱序
natsort()自然排序
字符串常用
获取
substr(string,strart,len)
从strart截取len位字符
strrt(string,str)
截取str后面的字符
strrchr(string,str)
从后面查找str,并截取后面的字符
替换
str_replace(search,replace,string)
用replace替换search字符
计算
strlen()
获取字符串长度
strpos(string,str,start)
查找字符串str出现的位置
strrpos(string,str)
从后查找str出现的位置
时间
date.timezone=PRC
配置时间php.ini
time()
获取1970-1-1到现在的秒数
date("Y-m-d H:i",time());
显示时间格式如 2008-12-01 12:01格式化事件戳
strtotime("2021-10-20")
通过字符串转换为事件戳
http全局数组
$_GET[]
获取所有的post请求参数
$_POST[]
获取所有的post请求参数
$_REQUEST
获取所有的请求
josnp方法
json_encode()
数组转jsonp
json_decode()
字符串转数组
header方法
header("Content-type: application/json");
返回json格式
header("Content-type:text/html; charset=utf-8");