PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。
PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。
PHP 脚本以 <?php 开始,以 ?> 结束
PHP中可以包含html
PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。
通过 PHP,有两种在浏览器输出文本的基础指令:echo 和 print
php中的注释:
// 这是 PHP 单行注释
/*
这是
PHP 多行
注释
*/。
PHP 变量规则:
变量以 [图片上传失败...(image-108f98-1538999095236)]
y 和 $Y 是两个不同的变量
PHP echo 和 print 语句
echo 和 print 区别:
echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo 或 echo()。
echo - 可以输出一个或多个字符串
print - 只允许输出一个字符串,返回值总为 1
提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。
PHP 数据类型 :
String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
[var_dump()] 方法,判断一个变量的类型与长度,并输出变量的数值,如果变量有值,则输出是变量的值,并返回数据类型。显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
echo,print,print_r,var_dump 的区别
1.echo
输出一个或者多个字符串。
2.print
和 echo 一样,速度 比 echo 慢。
3.print_r
打印关于变量的易于理解的信息,如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。 记住,print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。
4.var_dump
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
5.var_dump 和 print_r 的区别
var_dump 返回表达式的类型与值而 print_r 仅返回结果,相比调试代码使用 var_dump 更便于阅读。
常量值被定义后,在脚本的其他任何地方都不能被改变。
php中设置常量,使用 define() 函数,函数语法如下:
bool define ( string [图片上传失败...(image-a9b188-1538999095235)]
value [, bool $case_insensitive = false ] )
该函数有三个参数:
name:必选参数,常量名称,即标志符。
value:必选参数,常量的值。
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
静态变量 static
被static修饰的变量叫静态变量,静态变量只会被初始化一次
php中false不打印,true转化为1,大小写都可以1
gettype()用来检测数据类型
魔术常量:
FUNCTION//返回函数的函数名
LINE;//返回当前代码所在的行数
FILE文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名
DIR文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
CLASS类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。
TRAIT
Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。
Trait 名包括其被声明的作用区域(例如 Foo\Bar)。
从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。其行为 MyHelloWorld 类中定义的方法一致。优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。
METHOD类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
NAMESPACE
当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。
[图片上传失败...(image-23e8b1-1538999095235)]
a;//函数中引用全局变量要用global
echo $a;
}
fn()
//php引入
include与require的区别:
- include遇到错误只会报错
- require遇到错误则会中断执行代码
include_once();//只引入一遍
PHP 并置运算符
在 PHP 中,只有一个字符串运算符。
并置运算符 (.) 用于把两个字符串值连接起来
例:[图片上传失败...(image-5ed0da-1538999095235)]
txt2="What a nice day!";
echo [图片上传失败...(image-14b9b3-1538999095235)]
txt2;
PHP strlen() 函数
strlen() 函数返回字符串的长度(字符数)。
PHP strpos() 函数
strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
//替换字符串
str_replace("stay","abc",[图片上传失败...(image-afc9f0-1538999095235)]
str);//不区分大小写
//截取字符串
substr([图片上传失败...(image-b66b34-1538999095235)]
str,"stay");
echo stristr([图片上传失败...(image-4f3f15-1538999095235)]
str);
//大小写转换
echo strtoupper([图片上传失败...(image-5ffa4c-1538999095235)]
str);
//空格转换成换行
[图片上传失败...(image-148d95-1538999095235)]
str1);
//去除首尾空格
echo "str".trim([图片上传失败...(image-b16741-1538999095235)]
str2);//去除左空格
echo "str".rtrim($str2);//去除右空格
//不解析标签
echo htmlspecialchars("<h1>标题</h1>");
//忽略标签
echo strip_tags("<h1>标题</h1>");
创建指定范围的数组
// $arr3=range("a","z");
PHP 条件语句
当您编写代码时,您常常需要为不同的判断执行不同的动作。您可以在代码中使用条件语句来完成此任务。
在 PHP 中,提供了下列条件语句:
if 语句 - 在条件成立时执行代码
if...else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
if...elseif....else 语句 - 在若干条件之一成立时执行一个代码块
switch 语句 - 在若干条件之一成立时执行一个代码块
在 PHP 中,array() 函数用于创建数组:
array();
在 PHP 中,有三种类型的数组:
数值数组 - 带有数字 ID 键的数组
关联数组 - 带有指定的键的数组,每个键关联一个值
多维数组 - 包含一个或多个数组的数组
unset()删除数组中的元素。连同下标一起删除
PHP 数值数组
这里有两种创建数值数组的方法:
自动分配 ID 键(ID 键总是从 0 开始):
[图片上传失败...(image-1d8115-1538999095235)]
cars[0]="Volvo";
[图片上传失败...(image-531806-1538999095235)]
cars[2]="Toyota";
获取数组的长度 - count() 函数
count() 函数用于返回数组的长度(元素的数量
PHP 关联数组
关联数组是使用您分配给数组的指定的键的数组。
这里有两种创建关联数组的方法:
[图片上传失败...(image-e4bc52-1538999095235)]
age['Peter']="35";
[图片上传失败...(image-12a211-1538999095235)]
age['Joe']="43"; )
遍历并打印关联数组中的所有值,您可以使用 foreach 循环,如下所示:
[图片上传失败...(image-97b952-1538999095235)]
age as [图片上传失败...(image-33a26a-1538999095235)]
x_value)
{
echo "Key=" . [图片上传失败...(image-b6ae07-1538999095235)]
x_value;
echo "
";
}
PHP - 数组排序函数
在本章中,我们将一一介绍下列 PHP 数组排序函数:
sort() - 对数组进行升序排列
rsort() - 对数组进行降序排列
asort() - 根据关联数组的值,对数组进行升序排列
ksort() - 根据关联数组的键,对数组进行升序排列
arsort() - 根据关联数组的值,对数组进行降序排列
krsort() - 根据关联数组的键,对数组进行降序排列
PHP 超级全局变量列表:
[图片上传失败...(image-5de1cf-1538999095234)]
GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。
$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
[图片上传失败...(image-fa78a3-1538999095234)]
_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。
[图片上传失败...(image-d96059-1538999095234)]
_SERVER['PHP_SELF'] 将得到 /test.php/foo.bar。FILE 常量包含当前(例如包含)文件的完整路径和文件名。 从 PHP 4.3.0 版本开始,如果 PHP 以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可用。
$_SERVER['GATEWAY_INTERFACE']
服务器使用的 CGI 规范的版本;例如,"CGI/1.1"。
$_SERVER['SERVER_ADDR']
当前运行脚本所在的服务器的 IP 地址。
$_SERVER['SERVER_NAME']
当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。(如: www.runoob.com)
$_SERVER['SERVER_SOFTWARE']
服务器标识字符串,在响应请求时的头信息中给出。 (如:Apache/2.2.24)
$_SERVER['SERVER_PROTOCOL']
请求页面时通信协议的名称和版本。例如,"HTTP/1.0"。
$_SERVER['REQUEST_METHOD']
访问页面使用的请求方法;例如,"GET", "HEAD","POST","PUT"。
$_SERVER['REQUEST_TIME']
请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496)
$_SERVER['QUERY_STRING']
query string(查询字符串),如果有的话,通过它进行页面访问。
$_SERVER['HTTP_ACCEPT']
当前请求头中 Accept: 项的内容,如果存在的话。
[图片上传失败...(image-9cefd1-1538999095234)]
_SERVER['HTTP_HOST']
当前请求头中 Host: 项的内容,如果存在的话。
$_SERVER['HTTP_REFERER']
引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。)
$_SERVER['HTTPS']
如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。
$_SERVER['REMOTE_ADDR']
浏览当前页面的用户的 IP 地址。
$_SERVER['REMOTE_HOST']
浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。
$_SERVER['REMOTE_PORT']
用户机器上连接到 Web 服务器所使用的端口号。
$_SERVER['SCRIPT_FILENAME']
当前执行脚本的绝对路径。
$_SERVER['SERVER_ADMIN']
该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。(如:someone@runoob.com)
$_SERVER['SERVER_PORT']
Web 服务器使用的端口。默认值为 "80"。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。
$_SERVER['SERVER_SIGNATURE']
包含了服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED']
当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。
$_SERVER['SCRIPT_NAME']
包含当前脚本的路径。这在页面需要指向自己时非常有用。FILE 常量包含当前脚本(例如包含文件)的完整路径和文件名。
$_SERVER['SCRIPT_URI']
URI 用来指定要访问的页面。例如 "/index.html"。
[图片上传失败...(image-286af7-1538999095234)]
_REQUEST 用于收集HTML表单提交的数据。
以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至<form>标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 [图片上传失败...(image-ce9c68-1538999095234)]
_REQUEST可以获取get或者post传入的数据,,不推荐使用,传值速度慢
[图片上传失败...(image-8d951f-1538999095234)]
_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。
以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至<form>标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_POST 来收集表单中的 input 字段数据
[图片上传失败...(image-ccda49-1538999095234)]
_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。
get和post的区别
- 1.get方式传值的大小最多2M,post无限制
- 2.get读取数据,post可以写入数据
- 3.get传入的数据会拼接在地址栏上,所以安全性不高,post更安全
[图片上传失败...(image-a2703e-1538999095234)]
_FILES -- $HTTP_POST_FILES [已弃用] — HTTP 文件上传变量
说明
引入 [图片上传失败...(image-6c1298-1538999095234)]
HTTP_POST_FILES。
通过 HTTP POST 方式上传到当前脚本的项目的数组。 此数组的概况在 POST 方法上传 章节中有描述。
(注意 [图片上传失败...(image-66715e-1538999095234)]
_FILES 是不同的变量,PHP 处理它们的方式不同)
[图片上传失败...(image-d72b7f-1538999095234)]
_ENV -- $HTTP_ENV_VARS [已弃用] — 环境变量
说明
通过环境方式传递给当前脚本的变量的数组。
这些变量被从 PHP 解析器的运行环境导入到 PHP 的全局命名空间。很多是由支持 PHP 运行的 Shell 提供的,并且不同的系统很可能运行着不同种类的 Shell,所以不可能有一份确定的列表。请查看你的 Shell 文档来获取定义的环境变量列表。
其他环境变量包含了 CGI 变量,而不管 PHP 是以服务器模块还是 CGI 处理器的方式运行。
[图片上传失败...(image-7ad68f-1538999095234)]
_ENV 是不同的变量,PHP 处理它们的方式不同
$_COOKIE
[图片上传失败...(image-a81db-1538999095234)]
HTTP_COOKIE_VARS [已弃用] — HTTP Cookies
通过 HTTP Cookies 方式传递给当前脚本的变量的数组。
[图片上传失败...(image-ba21ce-1538999095234)]
_COOKIE 是不同的变量,PHP 处理它们的方式不同
[图片上传失败...(image-71a8f3-1538999095234)]
_SESSION -- $HTTP_SESSION_VARS [已弃用] — Session 变量当前脚本可用 SESSION 变量的数组。更多关于如何使用的信息,参见 Session 函数 文档。
PHP 循环
在您编写代码时,您经常需要让相同的代码块一次又一次地重复运行。我们可以在代码中使用循环语句来完成这个任务。
在 PHP 中,提供了下列循环语句:
while - 只要指定的条件成立,则循环执行代码块
do...while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
for - 循环执行代码块指定的次数
foreach - 根据数组中每个元素来循环代码块
while (条件)
{
要执行的代码;
}
do
{
要执行的代码;
}
while (条件);
for (初始值; 条件; 增量)
{
要执行的代码;
}
foreach ([图片上传失败...(image-7cacf8-1538999095234)]
value)
{
要执行代码;
}每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。
PHP - 多维数组
多维数组是包含一个或多个数组的数组。
在多维数组中,主数组中的每一个元素也可以是一个数组,子数组中的每一个元素也可以是一个数组。
例:<?php
[图片上传失败...(image-2b10db-1538999095234)]
sites);
print("</pre>");
?>
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
网友评论