PHP基础入门

PHP语法初步

PHP是一种运行在服务器端的脚本语言,可以镶嵌到HTML当中

PHP代码标记

asp标记:<%php代码%>

短标记:<?PHP代码?>

以上两种基本弃用,须在ini中启用

脚本标记 : <script language="php">php代码</script>

标准标记:<?php php代码?>

php变量

变量是用来储存信息的"容器"

变量可以是很短的名称(如x,y)或者更具描述性的名称(如age,carname)

变量命名规则

变量以$符号开始,后面跟着变量的名称

变量名必须以字母或者下划线字符开始

变量名只能包括字母,数字以及下划线(A-z,0-9和_)

变量名不能包含空格

变量名是区分大小写的

PHP语句和PHP变量都是区分大小写的

创建(声明)PHP变量

PHP没有声明变量的命令

变量在第一次赋值给他时被创建

PHP会根据变量的值,自动把变量转换为正确的数据类型

PHP变量作用域

变量的作用域是脚本中变量可被引用/使用的部分

PHP有四种不同的变量作用域

local

global

static

parameter

局部和全局作用域

在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中任何部分访问,要在一个函数中访问一个全局变量,需要使用global关键字

在PHP函数内部声明的变量是局部变量,仅能在函数内部访问:

global

global 关键字用于函数内访问全局变量。

在函数内调用函数外定义的全局变量,需要在函数中的变量前加上 global 关键字

Static 

当一个函数完成时,它的所有变量通常都会被删除若使某个局部变量不要被删除。在第一次声明变量时使用 static 关键字

参数作用域

参数是通过调用代码将值传递给函数的局部变量。

参数是在参数列表中声明的,作为函数声明的一部分

PHP输出

echo与print的区别

echo可以输出一个或多个字符

print只允许输出一个字符串,返回值总唯一

echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo echo()

print 同样是一个语言结构,可以使用括号,也可以不使用括号: print print()

EOF# PHP EOF(heredoc) 使用说明

PHP EOF(heredoc)是一种在命令行shell(如shcshkshbashPowerShellzsh)和程序语言(像PerlPHPPythonRuby)里定义一个字符串的方法。

必须后接分号,否则编译通不过。

EOF可以用任意其它字符代替,只需保证结束标识与开始标识一致。

结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。

开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。

当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。

echo

输出一个或者多个字符串。

print

和 echo 最主要的区别: print 仅支持一个参数,并总是返回 1。

print_r

打印关于变量的易于理解的信息,如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。

var_dump

此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

var_dump 和 print_r 的区别

var_dump 返回表达式的类型与值而 print_r 仅返回结果,相比调试代码使用 var_dump 更便于阅读。

php数据类型比较

数据类型

PHP 变量存储不同的类型的数据,不同的数据类型可以做不一样的事情。

PHP 支持以下几种数据类型:

String(字符串)

Integer(整型)

Float(浮点型)

Boolean(布尔型)

Array(数组)

Object(对象)

NULL(空值)

Resource(资源类型)

PHP 字符串

一个字符串是一串字符的序列

PHP 整型

整数是一个没有小数的数字。

整数规则:

整数必须至少有一个数字 (0-9)

整数不能包含逗号或空格

整数是没有小数点的

整数可以是正数或负数

整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)

PHP 浮点型

浮点数是带小数部分的数字,或是指数形式。

PHP 布尔型

布尔型可以是 TRUE 或 FALSE。

布尔型通常用于类型判断

PHP 数组

数组可以在一个变量中存储多个值。

PHP 对象

对象数据类型也可以用于存储数据。

在 PHP 中,对象必须声明。

必须使用class关键字声明类对象。类是可以包含属性和方法的结构。

PHP NULL 值

NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。

NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。

PHP 资源类型

PHP 资源 resource 是一种特殊变量,保存了到外部资源的一个引用。

常见资源数据类型有打开文件、数据库连接、图形画布区域等。

由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。

使用 get_resource_type() 函数可以返回资源(resource)类型

PHP 类型比较

松散比较:使用两个等号 == 比较,只比较值,不比较类型。

严格比较:用三个等号 === 比较,除了比较值,也比较类型。

PHP常量

常量值被定义后,在脚本的其他任何地方都不能被改变

一个常量由英文字母,下划线,和数字组成,但数字不能作为首字母出现。(常量名不需要加$修饰符).

常量在整个脚本中都可以使用

设置常量,使用define()函数,函数语法如下

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

该函数有三个参数:

**name:**必选参数,常量名称,即标志符。

**value:**必选参数,常量的值。

case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。

常量是全局的

常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用

PHP字符串

字符串变量用于储存并处理文本

文本值给变量时,需给文本值加上单引号或者双引号

strlen()

返回字符串的长度 (字节数)

echo strlen("hello world!");

strpos()

用于在字符串内查找一个字符或一段指定的文本

在hello world中查找文本world

echo strpos("hello world","world");

运算符

字符串运算符

字符串运算符"."可将两个字符串连接起来,结合成一个新的字符串.PHP中"+"只能用作赋值运算符,而不能用作字符串运算符

算术运算符

算术运算符适合在有两个或者两个以上不同操作数的场合使用,当只有一个操作数时,要体现其增减变化,可以使用递增运算符 "++"或者递减运算符"--"

递增或递减运算符有两种使用方法.一种是将运算符放在变量前面,即先将变量作加一或减一的运算,然后再将值赋给原变量,叫做前置递增或递减运算符;另一种是将运算符放在变量后面,即先返回变量的当前值,然后变量的当前值作加一或减一的运算,叫做后置递增或递减运算符

PHP函数利用

判断

if 语句 - 在条件成立时执行代码

if...else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码

if...elseif....else 语句 - 在若干条件之一成立时执行一个代码块

switch 语句 - 在若干条件之一成立时执行一个代码块

if 语句用于仅当指定条件成立时执行代码。

if...else 语句

在条件成立时执行一块代码,条件不成立时执行另一块代码

if...elseif....else 语句

在若干条件之一成立时执行一个代码块

switch 语句

switch语句用于根据多个不同条件执行不同动作。

循环

while - 只要指定的条件成立,则循环执行代码块

do...while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环

for - 循环执行代码块指定的次数

foreach - 根据数组中每个元素来循环代码块

while 循环

while 循环将重复执行代码块,直到指定的条件不成立。

do...while 语句

do...while 语句会至少执行一次代码,然后检查条件,只要条件成立,就会重复进行循环。

数组

创建数组

array()函数用于创建数组

数值数组:带有数字ID键的数组

关联数组:带有指定的键的数组,每个键关联一个值

多维数组:包含一个或多个数组的数组

数值数组

自动分配ID键(ID键总是从0开始)

$cars=array("Volvo","BMW","Toyota");

获得数组的长度 count()函数

count()函数用于返回数组的长度(元素的数量)

$cars=array("Volvo","BMW","Toyota");

echo count($cars);

遍历数值数组

遍历并打印数值数组中所有值

for($x=0;$x<$arrlength;$x++)

{

echo $cars[$x];

echo"</br>";

}

关联数组

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

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

or

$age['Peter']="35";

$age['Ben']="37";

$age['Joe']="43";

遍历关联数组

遍历并打印关联数组中的所有值,您可以使用 foreach 循环

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

 

foreach($age as $x=>$x_value)

{

echo "Key=" . $x . ", Value=" . $x_value;

echo "<br>";

}

数组排序

sort() - 对数组进行升序排列

rsort() - 对数组进行降序排列

asort() - 根据关联数组的值,对数组进行升序排列

ksort() - 根据关联数组的键,对数组进行升序排列

arsort() - 根据关联数组的值,对数组进行降序排列

krsort() - 根据关联数组的键,对数组进行降序排列

sort() - 对数组进行升序排列

PHP全局变量

PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。

PHP 超级全局变量列表:

$GLOBALS

$_SERVER

$_REQUEST

$_POST

$_GET

$_FILES

$_ENV

$_COOKIE

$_SESSION

PHP $GLOBALS

$GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。

$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

PHP $_SERVER

$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

 

PHP函数利用

PHP函数准则

函数的名称应该提示出它的功能

函数名称以字母或下划线开头(不能以数字开头)

常见函数

phpinfo()

phpinfo函数可以显示出PHP所有相关信息.是排查配置php是否出错或漏配置模块的主要方式之一

eval()

eval()函数来执行一个字符串表达式,并返回表达式的值

system();

可以使用system函数来执行系统命令

魔术方法

PHP 向它运行的任何脚本提供了大量的预定义常量。

不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。

有八个魔术常量它们的值随着它们在代码中的位置改变而改变。

LINE

文件中的当前行号

echo _LINE_;

FILE

文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。

echo _FILE_;

DIR

文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。

它等价于 dirname(FILE)。除非是根目录,否则目录中名不包括末尾的斜杠。

FUNCTION

返回函数名称

echo _FUNCTION;

CLASS

类的名称

echo 'class name' . _CLASS_."<br>";

PHP表单

表单

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

<html>

<head>

<meta charset="utf-8">

</head>

<body>

 

<form action="welcome.php" method="post">

名字: <input type="text" name="fname">

年龄: <input type="text" name="age">

<input type="submit" value="提交">

</form>

 

</body>

</html>/

PHP获取下拉菜单的数据

PHP下拉菜单单选

 

<html>

<head>

<meta charset="utf-8">

</head>

<?php

$q=$_GET['q'];

if($q=="baidu"){

echo "www.baidu.com";

}elseif($q=="google"){

echo "www.google.com";

}elseif($q=="taobao"){

echo "www.taobao.com";

}

?>

<form action="" method="get">

<select name="q">

<option value="">选择一个站点:</option>

<option value="baidu">Baidu</option>

<option value="google">Google</option>

<option value="taobao">Taobao</option>

</select>

<input type="submit" value="提交">

</form>

</form>

PHP下拉菜单多选

如果下拉菜单是多选的( multiple="multiple"),通过将设置 select name="q[]" 以数组的方式获取

 

<html>

<head>

<meta charset="utf-8">

</head>

<?php

$a = $_POST['q'];

foreach($a as $aa){

echo $aa."</br>";

}

?>

<form action="" method="post">

<select multiple="multiple" name="q">

<option value="">选择一个站点:</option>

<option value="BAIDU">BAIDU</option>

<option value="GOOGLE">Google</option>

<option value="TAOBAO">Taobao</option>

</select>

<input type="submit" value="提交">

</form>

</form>

单选按钮表单

PHP 单选按钮表单中 name 属性的值是一致的,value 值是不同的

 

<html>

<head>

<meta charset="utf-8">

</head>

<form action="" method="get">

<input type="radio" name="q" value="RUNOOB" />Runoob

<input type="radio" name="q" value="GOOGLE" />Google

<input type="radio" name="q" value="TAOBAO" />Taobao

<input type="submit" value="提交">

</form>

checkbox 复选框

PHP checkbox 复选框可以选择多个值

 

<head>

<meta charset="utf-8">

</head>

<form action="" method="post">

<input type="checkbox" name="q[]" value="RUNOOB"> Runoob<br>

<input type="checkbox" name="q[]" value="GOOGLE"> Google<br>

<input type="checkbox" name="q[]" value="TAOBAO"> Taobao<br>

<input type="submit" value="提交">

</form>

表单验证

PHP文件包含

include 和 require 语句用于在执行流中插入写在其他文件中的有用的代码。

include 和 require 除了处理错误的方式不同之外,在其他方面都是相同的:

require 生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。

include 生成一个警告(E_WARNING),在错误发生后脚本会继续执行。

<html>

<head>

<meta charset="utf-8">

</head>

<body>

<?php include 'header.php'; ?>

<h1>欢迎来到我的主页!</h1>

<p>一些文本。</p>

</body>

</html>

文件以及文件上传

创建一个文件上传表单

 

<html>

<head>

<meta charset="utf-8">

</head>

<body>

<form action="upload.php" method="post" enctype="multipart/form-data">

<label for="file">文件名:</label>

<input type="file" name="file" id="file"><br>

<input type="submit" name="submit" value="提交">

</form>

</body>

</html>

创建上传脚本

 

<head>

<meta charset="utf-8">

</head>

 

 

 

<?php

echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";

echo "文件类型: " . $_FILES["file"]["type"] . "<br>";

echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";

echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];

?>

增加防止上传文件报错提示

 

<?php

if ($_FILES["file"]["error"] > 0)

{

echo "错误:" . $_FILES["file"]["error"] . "<br>";

}

else

{

echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";

echo "文件类型: " . $_FILES["file"]["type"] . "<br>";

echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";

echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];

}

?>

第一个参数是表单的 input name,第二个下标可以是 "name"、"type"、"size"、"tmp_name" 或 "error"。如下所示:

$_FILES["file"]["name"] - 上传文件的名称

$_FILES["file"]["type"] - 上传文件的类型

$_FILES["file"]["size"] - 上传文件的大小,以字节计

$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称

$_FILES["file"]["error"] - 由文件上传导致的错误代码

上传限制

 

<head>

<meta charset="utf-8">

</head>

<?php

// 允许上传的图片后缀

$allowedExts = array("gif", "jpeg", "jpg", "png");

$temp = explode(".", $_FILES["file"]["name"]);//explode() 函数使用一个字符串分割另一个字符串,并返回由字符串组成的数组。

$extension = end($temp); // 获取数组最后的数值

if ((($_FILES["file"]["type"] == "image/gif")

|| ($_FILES["file"]["type"] == "image/jpeg")

|| ($_FILES["file"]["type"] == "image/jpg")

|| ($_FILES["file"]["type"] == "image/pjpeg")

|| ($_FILES["file"]["type"] == "image/x-png")

|| ($_FILES["file"]["type"] == "image/png"))

&& ($_FILES["file"]["size"] < 204800) // 小于 200 kb

&& in_array($extension, $allowedExts))

{

if ($_FILES["file"]["error"] > 0)

{

echo "错误:: " . $_FILES["file"]["error"] . "<br>";

}

else

{

echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";

echo "文件类型: " . $_FILES["file"]["type"] . "<br>";

echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";

echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];

}

}

else

{

echo "非法的文件格式";

}

?>

保存被上传的文件

 

<head>

<meta charset="utf-8">

</head>

<?php

// 允许上传的图片后缀

$allowedExts = array("gif", "jpeg", "jpg", "png");

$temp = explode(".", $_FILES["file"]["name"]);

echo $_FILES["file"]["size"];

$extension = end($temp); // 获取文件后缀名

if ((($_FILES["file"]["type"] == "image/gif")

|| ($_FILES["file"]["type"] == "image/jpeg")

|| ($_FILES["file"]["type"] == "image/jpg")

|| ($_FILES["file"]["type"] == "image/pjpeg")

|| ($_FILES["file"]["type"] == "image/x-png")

|| ($_FILES["file"]["type"] == "image/png"))

&& ($_FILES["file"]["size"] < 204800) // 小于 200 kb

&& in_array($extension, $allowedExts))

{

if ($_FILES["file"]["error"] > 0)

{

echo "错误:: " . $_FILES["file"]["error"] . "<br>";

}

else

{

echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";

echo "文件类型: " . $_FILES["file"]["type"] . "<br>";

echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";

echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "<br>";

 

// 判断当前目录下的 upload 目录是否存在该文件

// 如果没有 upload 目录,你需要创建它,upload 目录权限为 777

if (file_exists("upload/" . $_FILES["file"]["name"]))

{

echo $_FILES["file"]["name"] . " 文件已经存在。 ";

}

else

{

// 如果 upload 目录不存在该文件则将文件上传到 upload 目录下

move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);

echo "文件存储在: " . "upload/" . $_FILES["file"]["name"];

}

}

}

else

{

echo "非法的文件格式";

}

?>

COOKIE

cookie 常用于识别用户。

cookie 常用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

创建COOKIE

setcookie() 函数用于设置 cookie

 

setcookie(name, value, expire, path, domain);

 

 

<?php

setcookie("user", "admin", time()+3600);

?>

使用isset()函数确认是否设置了cookie

 

<html>

<head>

<meta charset="utf-8">

</head>

<body>

 

<?php

if (isset($_COOKIE["user"]))

echo "欢迎 " . $_COOKIE["user"] . "!<br>";

else

echo "普通访客!<br>";

?>

 

</body>

</html>

删除cookie

 

<?php

// 设置 cookie 过期时间为过去 1 小时

setcookie("user", "", time()-3600);

?>

session

开始 PHP Session

<?php session_start(); ?>

 

<html>

<body>

 

</body>

</html>

储存session变量

使用PHP $_SESSION变量

 

<?php

session_start();

$_SESSION['views']=1;

?>

 

<html>

<head>

<meta charset="utf-8">

</head>

<body>

 

<?php

echo "浏览量:". $_SESSION['views'];

?>

 

</body>

</html>

在下面的实例中,我们创建了一个简单的 page-view 计数器。isset() 函数检测是否已设置 "views" 变量。如果已设置 "views" 变量,我们累加计数器。如果 "views" 不存在,则创建 "views" 变量,并把它设置为 1:

<?php

session_start();

 

if(isset($_SESSION['views']))

{

$_SESSION['views']=$_SESSION['views']+1;

}

else

{

$_SESSION['views']=1;

}

echo "浏览量:". $_SESSION['views'];

?>

销毁session

使用unset()session_destroy()函数

unset()函数用于释放指定的session变量

 

<?php

session_start();

if(isset($_SESSION['views']))

{

unset($_SESSION['views']);

}

?>

通过session_destroy()函数彻底销毁session

 

<?php

session_destroy();

?>

 

posted @   梦在飞翔SHS  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
点击右上角即可分享
微信分享提示