php入门基础语法

Itachi

基础语法

php介绍

php是服务器端脚本语言。

在学习php之前,您需要对HTML和CSS有一定了解

为什么要使用php:

  • PHP可以在不同平台上运行(Windows、Linux、Unix、Msc OS X等)
  • PHP与目前几乎所有的正在被使用的服务器相兼容(Apache、Nginx、IIS等)
  • PHP提供了广泛的数据库支持
  • PHP易于学习,并可高效地运行于服务器段

基本的PHP语法

PHP脚本可以放在文档中的任何位置。

PHP脚本以 <?php开始,以 ?\>结束:

1
2
3
4
5
<?php

//PHP代码

?>

PHP的默认文件扩展名是”.php

PHP文件通常包含HTML标签和一些PHP脚本代码。

下面我们写一个PHP文件示例,它将向浏览器输出文本”Hello World!”:

1
2
3
4
5
<h1>first PHP page</h1>

<?php
echo "Hello World!";
?>

同样的,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
2
3
4
<?php
define("csdn","1tachi",true);
echo csdn;
?>

数据类型:

PHP支持的数据类型有:String(字符型)、Integer(整型)、Float(浮点型)、Boolean(布尔型)、Array(数组)、Object(对象)、NULL(空值)

空值和布尔型不区分大小写

  • 布尔型
1
2
3
<?php
$s = true;
?>
  • 数组
1
2
3
<?php
$color = array("red" , "blue" , "green");
?>
  • 对象
1
2
3
4
5
6
7
8
9
10
11
<?php
class Car {
var $color;
function Car($color = "red") {
$this -> color = $color;
}
function showColor() {
return $this -> color;
}
}
?>
  • NULL值
1
2
3
<?php
$x = null;
?>

变量作用域

变量中的作用域是脚本中变量可被引用/使用的地方

  • local
  • global
  • static
  • parameter

局部和全局作用域

在函数外部定义的变量,拥有全局作用域。

除函数外,全局变量可以被脚本中任何部分访问,如果要在函数中访问全局变量,需要使用 global关键字。

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$x = 5; //全局变量
function Test() {
$y = 10; //局部变量
echo "变量 y 为 $y";
echo "变量 x 为 $x";
echo "<br>"; //HTML内的换行标签

global $x;

echo "变量 x 为 $x";
}
?>

Static作用域

当一个函数完成时,它的所有变量通常会被删除,如果你希望某个局部变量不被删除,可以在第一次声明时使用static关键字:

1
2
3
4
5
6
7
8
9
10
11
<?php
function Test() {
static $x = 5;
echo $x;
$x++;
}

Test(); //output 5
Test(); //output 6
Test(); //output 7
?>

可变变量

在PHP中,我们可以用一个变量的值来指定另一个变量的名称:

1
2
3
4
5
<?php
$hello = 'world';
$world = "Hi!";
echo $$hello; //output 'Hi!'
?>

运算符

PHP的运算符与其他语言大同小异,这里只介绍不同:

并置

. :作用是连接两个字符串

数组

在PHP中,array()函数用于创建数组,数组类型分为三种:

  • 数值数组 :带有数字ID键的数组
  • 关联数组 :带有指定的键的数组,每个键关联一个值
  • 多维数组 :包含一个或多个数组的数组

数值数组

创建数值数组的方法有两种:

  • 自动分配ID键
    ID键从0开始
1
$color = array("red" , "blue" , "green");
  • 人工分配ID
1
2
3
$color[0] = "red";
$color[1] = "blue";
$color[2] = "green";

下面使用自动分配的方法创建一个数组并打印

1
2
3
4
<?php
$color = array("red" , "blue" , "green");
echo "I like " . $color[0] . "," . $color[1] . "and" . $color[2] . ".";
?>

可以将不同数据类型整合到同一数组中:

1
2
3
4
5
<?php
$myArray[0] = "蜜桃臀";
$myArray[1] = "yyds";
$myArray[2] = "!";
?>

关联数组

关联数组是使用你分配给数组的指定的的数组。

创建方法同样有两种:

1
$age = array("UZI"=>"24" , "faker"=>"25" , "Theshay"=>"21");
1
2
3
$age['UZI'] = "24";
$age['faker'] = "25";
$age['Theshy'] = "21";

多维数组

多维数组包含一个或多个数组。

数组的维数表示你需要选择元素的索引数。

对于二维数组,你需要两个索引来选择一个元素
对于三维数组,你需要三个索引来选择一个元素

下面创建一个包含3个数组的二维数组

1
2
3
4
5
$lolID = array(
'first'=>array('Faker' , 'UZI'),
'second'=>array('Theshy' , 'Mlxg' , 'WeiXiao'),
'third'=>array('Bang' , 'Bin')
);

二维$lolID数组包含三个数组,它有两个索引:行和列。

1
2
echo $lolID['first'][1];	//output UZI
echo $lolID['second'][0]; //output Theshy

控制语句

控制语句与其他语言大同小异,这里只介绍foreach循环

foreach循环仅在数组上使用,用于循环遍历数组中的每个键/值对

语法:

1
2
3
4
5
6
7
foreach (array as $value) {
//代码区
}
//或者
foreach (array as $key => $value) {
//代码区
}

第一个表达式循环获取出数组的每一个值;第二个数组循环获取出数字的键值对

下面演示了一个循环,该循环输出$names数组的键$key和值$value。

1
2
3
4
5
6
7
$names = array("UZI" => 24 , "faker" => 25 , "Theshay" => 21);
foreach ($names as $name => $age) {
echo $name . '年龄' . $age . '<br>';
}
//UZI年龄24
//faker年龄25
//Theshy年龄21

函数

在PHP中,有超过1000多个内建的函数。

函数是通过调用来执行的,你可以在页面的任何位置调用函数。

创建PHP函数

语法:

1
2
3
function functionName() {
//代码区
}

PHP函数规则:

  • 函数的名称应该能表示它的功能
  • 函数名称以字母或下划线开头
  • 函数名不区分大小写

函数参数

信息可以通过变量传递给参数,它们和变量一样;参数在函数名后的括号内指定

下面创建了一个平方函数:

1
2
3
4
5
6
7
<?php
function square($num) {
echo $num * $num;
}

square(2); //output 4
?>

参数之间通过逗号分隔:

1
2
3
4
5
6
7
<?php
function addNum($num1, $num2, $num3) {
echo $num1 + $num2 + $num3;
}

addNum(1, 2, 3); //output 6
?>

默认参数

在定义函数时,可以为函数参数定义默认值。

1
2
3
4
5
6
7
8
9
<?php
function addNum($x = 2, $y = 4) {
echo $x + $y;
}

addNum(3, 6); //output9
addNum(3); //output 7
addNum(); //output 6
?>

设置默认参数时必须从最右边开始设置,传参时会从组左边开始赋值

函数返回值

return语句

函数可以使用 return语句返回值,return会停止函数的执行,并返回调用代码

1
2
3
4
5
6
7
8
<?php
function sum($x , $y) {
$sum = $x + $y;
return $sum;
}

echo sum(1, 3); //output 4
?>
  • 如果没有使用return则返回值为NULL
  • 函数不能返回多个值,但可以返回数组Array实现类似的效果
  • return语句是语言结构而不是函数,因此其参数通常不以括号括起,这样可以降低PHP负担

预定义变量及魔术常量

超全局变量

超全局变量是在全部作用域中始终可用的内置变量,这意味着他们在一个脚本的全部作用域中都可用。在函数和方法中无需执行global或$variable即可访问他们。

PHP的超全局变量是$_SERVER、$GLOBALS、$_REQUEST、$_POST、$_GET、$_FILES、$_ENV、$_COOKIE、$_SESSION

$_SERVER

$_SERVER是一个包含标题,路径和脚本位置等信息的数组。此阵列中的条目由Web服务器创建。

$_SERVER[‘SCRIPT_NSME’]返回当前脚本的路径:

1
2
3
4
<?php
echo $_SERVER['SCRIPT_NAME'];
//output "/test.php"
?>

$_SERVER变量:HTTP_HOST

$_SERVER[‘HTTP_HOST’]从当前请求头返回主机头:

1
2
3
4
<?php
echo $_SERVER['HTTP_HOST'];
//output "localhost"
?>

当你的服务器上有大量图像并需要将网站转移到令一台主机时,此方法可能会有用。
而不是更改每个图像的路径:创建一个”config.php“文件,它保存你的图像路径

1
2
3
4
<?php
$host = $_SERVER['HTTP_HOST'];
$image_path = $host.'/image/';
?>

在脚本中使用”config.php”文件:

1
2
3
4
<?php
require 'config,php';
echo '<img src="'.$image_path.'header.png" />';
?>

php表单

PHP中的$_GET和$_POST变量用于检索表单中的信息,比如用户输入

PHP表单处理

PHP会自动对来自HTML页面中的表单元素进行处理,使其在PHP脚本中生效。

下面包含了一个HTML表单,带有两个输入框和一个提交按钮

1
2
3
4
5
6
7
8
9
<html>
<body>
<form action="form.php" method="post">
Name:<input type="text" name="fname">
Age:<input type="text" name="age">
<input type="submit">
</form>
</body>
</html>

action属性指定在提交表单时,将数据发送到名为:”form.php”的PHP文件。HTML表单元素具有名称,这将在使用PHP访问数据时使用。

表单内容的获取

当用户填写完上述表单并点击提交时,表单的数据会被送往名为”form.php”的PHP文件:

1
2
3
4
5
6
<html>
<body>
Welcome <?php echo $_POST["fname"];?>!<br>
You are <?php echo $_POST["age"];?>years old.
</body>
</html>

$_POST是超全局数组保存的键/值对。在键值对中,键是表单控件的名称,值是用户输入的数据

$_POST变量

当HTTP POST请求的Content-Type是 application/x-www-form-urlencodedmultipart/form-data时,会将变量以关联数组形式传入当前脚本。

当用户点击”Submit”时,URL如:

1
/post.php

“post.php”文件现在可以通过$_POST变量来收集表单数据
表单中的名称会自动成为$_POST数组中的键

$_GET变量

在PHP中,预定义的$_GET变量用于收集来自method=”get”的表单中的值。

示例:

1
2
3
4
5
6
7
8
9
<html>
<body>
<form action="welcome.php" method="get">
Name:<input type="text" name="fname">
Age:<input type="text" name="age">
<input type="submit">
</form>
</body>
</html>

当用户点击”Submit”按钮时,URL:/Welcome.php?fname=UZI&age=24

“welcome.php”文件现在可以通过$_GET变量来收集表单数据
表单中的名称会自动成为$_GET数组中的键:

1
2
Welcome <?php echo $_GET["fname"];?>.<br>
You are <?php echo $_GET["age"];?>years old!

$_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
2
3
<?php
setcookie("user" , "Alex Porter" , time()+3600);
?>

还有一种设置过期时间的方法:

1
2
3
4
<?php
$expire = time()+60*60*24*30;
$setcookie("user" , "Alex Porter" , $expire);
?>

过期时间为60秒60分24小时*30天

获取cookie

PHP中的$_COOKIE变量用于取回cookie的值。

下面我们取回了名为”user”的cookie的值,并把它打印在了页面上:

1
2
3
4
5
6
7
<?php
//打印一个cookie
echo $_COOKIE["user"];

//查看所有的cookies
print_r($_COOKIE);
?>

下面我们使用isset()函数来确认是否已设置了cookie:

1
2
3
4
5
6
7
8
9
10
11
<html>
<body>
<?php
if (isset($_COOKIE["user"])) {
echo "Welcome ".$_COOKIE["user"]."!<br>";
} else {
echo "Welcome guest!<br>";
}
?>
</body>
</html>

删除cookie

删除cookie时,应当使过期日期变更为过去的时间点。

1
2
3
4
<?php
//设置一个一小时前的过期日期
setcookie("user" , "" , time()-3600);
?>

$_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 进行许可。
 评论