php入门基础语法
基础语法
php介绍
php是服务器端脚本语言。
在学习php之前,您需要对HTML和CSS有一定了解
为什么要使用php:
- PHP可以在不同平台上运行(Windows、Linux、Unix、Msc OS X等)
- PHP与目前几乎所有的正在被使用的服务器相兼容(Apache、Nginx、IIS等)
- PHP提供了广泛的数据库支持
- PHP易于学习,并可高效地运行于服务器段
基本的PHP语法
PHP脚本可以放在文档中的任何位置。
PHP脚本以 <?php
开始,以 ?\>
结束:
1 |
|
PHP的默认文件扩展名是”.php
“
PHP文件通常包含HTML标签和一些PHP脚本代码。
下面我们写一个PHP文件示例,它将向浏览器输出文本”Hello World!”:
1 | <h1>first PHP page</h1> |
同样的,PHP语句也是以分号”;”结尾,输出语句为:echo和print
PHP的注释和C一样,这里不做赘述
变量
变量被用作我们储存信息的“容器”。
其不必声明数据类型
1 | $txt = "Hello World!"; |
PHP变量规则:
- 变量必须以
$
符号开始,后面紧跟着变量名 - 变量名必须以字母或下划线字符开始
- 变量名只能包含数字、字母、下划线且不含空格
- 变量名区分大小写
常量
PHP常量不需要加 $
修饰符,设置常量,使用 define()
函数:
1 | define(string constant_name, mixed value, case_sensitive = true) |
- constant_name:必选参数,常量名称(即标识符)
- value:必选参数,常量的值
- case_sensitive:可选参数,指定是否对大小写敏感,设定为true表示不敏感
下面创建一个不区分大小写的常量,其值为”1tachi”:
1 |
|
数据类型:
PHP支持的数据类型有:String(字符型)、Integer(整型)、Float(浮点型)、Boolean(布尔型)、Array(数组)、Object(对象)、NULL(空值)
空值和布尔型不区分大小写
- 布尔型
1 |
|
- 数组
1 |
|
- 对象
1 |
|
- NULL值
1 |
|
变量作用域
变量中的作用域是脚本中变量可被引用/使用的地方
- local
- global
- static
- parameter
局部和全局作用域
在函数外部定义的变量,拥有全局作用域。
除函数外,全局变量可以被脚本中任何部分访问,如果要在函数中访问全局变量,需要使用 global
关键字。
1 |
|
Static作用域
当一个函数完成时,它的所有变量通常会被删除,如果你希望某个局部变量不被删除,可以在第一次声明时使用static关键字:
1 |
|
可变变量
在PHP中,我们可以用一个变量的值来指定另一个变量的名称:
1 |
|
运算符
PHP的运算符与其他语言大同小异,这里只介绍不同:
并置
.
:作用是连接两个字符串
数组
在PHP中,array()函数用于创建数组,数组类型分为三种:
- 数值数组 :带有数字ID键的数组
- 关联数组 :带有指定的键的数组,每个键关联一个值
- 多维数组 :包含一个或多个数组的数组
数值数组
创建数值数组的方法有两种:
- 自动分配ID键
ID键从0开始
1 | $color = array("red" , "blue" , "green"); |
- 人工分配ID
1 | $color[0] = "red"; |
下面使用自动分配的方法创建一个数组并打印
1 |
|
可以将不同数据类型整合到同一数组中:
1 |
|
关联数组
关联数组是使用你分配给数组的指定的键的数组。
创建方法同样有两种:
1 | $age = array("UZI"=>"24" , "faker"=>"25" , "Theshay"=>"21"); |
1 | $age['UZI'] = "24"; |
多维数组
多维数组包含一个或多个数组。
数组的维数表示你需要选择元素的索引数。
对于二维数组,你需要两个索引来选择一个元素
对于三维数组,你需要三个索引来选择一个元素
下面创建一个包含3个数组的二维数组:
1 | $lolID = array( |
二维$lolID数组包含三个数组,它有两个索引:行和列。
1 | echo $lolID['first'][1]; //output UZI |
控制语句
控制语句与其他语言大同小异,这里只介绍foreach循环
foreach循环仅在数组上使用,用于循环遍历数组中的每个键/值对。
语法:
1 | foreach (array as $value) { |
第一个表达式循环获取出数组的每一个值;第二个数组循环获取出数字的键值对
下面演示了一个循环,该循环输出$names数组的键$key和值$value。
1 | $names = array("UZI" => 24 , "faker" => 25 , "Theshay" => 21); |
函数
在PHP中,有超过1000多个内建的函数。
函数是通过调用来执行的,你可以在页面的任何位置调用函数。
创建PHP函数
语法:
1 | function functionName() { |
PHP函数规则:
- 函数的名称应该能表示它的功能
- 函数名称以字母或下划线开头
- 函数名不区分大小写
函数参数
信息可以通过变量传递给参数,它们和变量一样;参数在函数名后的括号内指定
下面创建了一个平方函数:
1 |
|
参数之间通过逗号分隔:
1 |
|
默认参数
在定义函数时,可以为函数参数定义默认值。
1 |
|
设置默认参数时必须从最右边开始设置,传参时会从组左边开始赋值
函数返回值
return语句
函数可以使用 return
语句返回值,return
会停止函数的执行,并返回调用代码
1 |
|
- 如果没有使用return则返回值为NULL
- 函数不能返回多个值,但可以返回数组Array实现类似的效果
- return语句是语言结构而不是函数,因此其参数通常不以括号括起,这样可以降低PHP负担
预定义变量及魔术常量
超全局变量
超全局变量是在全部作用域中始终可用的内置变量,这意味着他们在一个脚本的全部作用域中都可用。在函数和方法中无需执行global或$variable即可访问他们。
PHP的超全局变量是$_SERVER、$GLOBALS、$_REQUEST、$_POST、$_GET、$_FILES、$_ENV、$_COOKIE、$_SESSION
$_SERVER
$_SERVER是一个包含标题,路径和脚本位置等信息的数组。此阵列中的条目由Web服务器创建。
$_SERVER[‘SCRIPT_NSME’]返回当前脚本的路径:
1 |
|
$_SERVER变量:HTTP_HOST
$_SERVER[‘HTTP_HOST’]从当前请求头返回主机头:
1 |
|
当你的服务器上有大量图像并需要将网站转移到令一台主机时,此方法可能会有用。
而不是更改每个图像的路径:创建一个”config.php“文件,它保存你的图像路径
1 |
|
在脚本中使用”config.php”文件:
1 | <?php |
php表单
PHP中的$_GET和$_POST变量用于检索表单中的信息,比如用户输入
PHP表单处理
PHP会自动对来自HTML页面中的表单元素进行处理,使其在PHP脚本中生效。
下面包含了一个HTML表单,带有两个输入框和一个提交按钮
1 | <html> |
action属性指定在提交表单时,将数据发送到名为:”form.php”的PHP文件。HTML表单元素具有名称,这将在使用PHP访问数据时使用。
表单内容的获取
当用户填写完上述表单并点击提交时,表单的数据会被送往名为”form.php”的PHP文件:
1 | <html> |
$_POST是超全局数组保存的键/值对。在键值对中,键是表单控件的名称,值是用户输入的数据。
$_POST变量
当HTTP POST请求的Content-Type是 application/x-www-form-urlencoded
或 multipart/form-data
时,会将变量以关联数组形式传入当前脚本。
当用户点击”Submit”时,URL如:
1 | /post.php |
“post.php”文件现在可以通过$_POST变量来收集表单数据
表单中的名称会自动成为$_POST数组中的键
$_GET变量
在PHP中,预定义的$_GET变量用于收集来自method=”get”的表单中的值。
示例:
1 | <html> |
当用户点击”Submit”按钮时,URL:/Welcome.php?fname=UZI&age=24
“welcome.php”文件现在可以通过$_GET变量来收集表单数据
表单中的名称会自动成为$_GET数组中的键:
1 | Welcome <br> . |
$_COOKIE变量
cookie是由服务器发送到浏览器的变量。cookie通常是服务器嵌入到用户计算机中的小文本文件。每当同一台计算机通过浏览器请求页面时,就会发送这个cookie。
如何创建cookie
setcookie()函数用于设置cookie。
setcookie()函数必须位于<html>标签之前,必须在任何其他输出发送到客户端前对cookie进行赋值。
cookie的名称自动指定为相同名称的变量。例如,如果被发送的cookie名为”user”,则会创建一个名为$user的变量,存储着cookie的值。
如果成功,该函数返回true,失败返回false
语法:
1 | setcookie(name, value, expire, path, domain, secure) |
参数 | 描述 |
---|---|
name | 必需。规定cookie的名称 |
value | 必须。规定cookie的值 |
expire | 可选。规定cookie的过期时间。time()+3600*24*30将设置cookie的过期时间为30天。如果这个参数没有设置,那么cookie将在session结束后(即浏览器关闭时)自动失效 |
path | 可选。规定cookie的服务器路径。如果路径设置为”/“,那么cookie将在整个域名内有效,如果路径设置为”/test/“,那么cookie将在test目录下及其所有子目录下有效。默认路径值是cookie所处的当前目录。 |
domain | 可选。规定cookie的域名。为了让cookie在example.com的所有子域名中有效,需要把cookie的域名设置为”.example.com”。当把cookie的域名设置为www.example.com时,cookie仅在www子域名中有效 |
secure | 可选。规定是否需要在安全的HTTPS连接来传输cookie。如果cookie需要在安全的HTTPS连接下传输,则设置为TRUE。默认时FALSE |
储存示例
下面,我们将创建名为”user”的cookie,并为他赋值”Alex Porter”我们也规定了此cookie在一小时后过期:
1 |
|
还有一种设置过期时间的方法:
1 |
|
过期时间为60秒60分24小时*30天
获取cookie
PHP中的$_COOKIE变量用于取回cookie的值。
下面我们取回了名为”user”的cookie的值,并把它打印在了页面上:
1 |
|
下面我们使用isset()函数来确认是否已设置了cookie:
1 | <html> |
删除cookie
删除cookie时,应当使过期日期变更为过去的时间点。
1 |
|
$_SESSION变量
PHP session变量用于储存关于用户会话(session)的信息,或者更改用户会话(session)的设置。
session变量储存单一用户信息,并且对于应用程序中的所有页面都是可用的。
开始PHP Session
当把用户信息存储到PHP Session中之前,首先必须启动会话。
session_start()函数必须位于<html>标签之前
输出:Pageviews = 1
计数实例
下面创建了一个page-view计数器。isset()函数检测是否已设置”views”变量。如果已设置”views”变量,我们累加计数器。如果”views”不存在,则创建”views”变量,并把它设置为1:
不断刷新这个界面,views的值会加1,设计成页面计数器
销毁Session
使用unset()或session_destroy()函数
unset()函数用于释放指定的session变量:
session_destroy()函数用于彻底销毁session:
session_deftroy()将重置session,您将失去所有已存储的session数据。
文件操作
PHP文件处理
PHP在创建、阅读、上传和编辑文件等提供了许多功能。fopen()打开不存在的文件,则文件将被创建,如果该文件已打开则根据模式进行相关操作。
文件可能通过下列模式来打开:
模式 | 描述 |
---|---|
r | 只读。在文件的开头开始。 |
r+ | 读/写。在文件的开头开始。 |
w | 只写。打开并清空文件的内容;如果文件不存在,则创建新文件。 |
w+ | 读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。 |
a | 追加。打开并向文件末尾进行写操作;如果文件不存在,则创建新文件。 |
a+ | 读/追加。通过向文件末尾写内容,来保持文件内容。 |
x | 只写。创建新文件。如果文件已存在,则返回FALSE和一个错误。 |
x+ | 读/写。创建新文件。如果文件已存在,则返回FALSE和一个错误。 |
如果fopen()函数无法打开指定文件,则返回0(false)。
写文件
fwirte()函数将内容写入一个打开的文件中。
函数会在到达指定长度或读到文件末尾(EOF)时(以先到者为准),停止运行。
如果函数成功执行,则返回写入的字节数。如果失败,则返回FALSE。
语法
参数 | 描述 |
---|---|
file | 必须。规定要写入的打开文件 |
string | 必须。规定要写入打开文件的字符串 |
length | 可选。规定要写入的最大字节数 |
用fclose()函数关闭文件
往文件中追加内容
当使用”a”模式附加到文件时,文件指针被放置在文件的末尾,确保在文件末尾添加所有新数据
读文件内容
fgets()逐行读取文件
fgets()函数用于从文件中逐行进行读取文件。
在调用该函数后,文件指针会被移动到下一行
语法:
- file:必要。规定要读取的文件,文件指针必须是有效的,必须指向由**fopen()或fsockopen()**成功打开,并且还未有fclose()关闭的文件
- length:可选。规定读取的字节数,默认为1024字节。从file指向的文件中读取一行并返回长度最多为length-1字节的字符串。如果没有则返回FALSE
使用PHP file()函数
file()函数把整个文件读入一个数组中。
数组的每个元素都是文件中相应的一行,包括换行符在内。
语法:
- path:必要。规定要读取的文件
- include_path:可选。值为”1”时,规定在include_path中搜寻文件
- context:可选。规定文件句柄环境,使用null时忽略该选项
结果为:
- 标题: php入门基础语法
- 作者: Itachi
- 创建于 : 2021-10-26 17:40:24
- 更新于 : 2021-10-27 02:28:13
- 链接: https://blog.tarchi.top/php/php入门基础语法/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。