PHP 基础知识
PHP 基础知识
PHP 简介
PHP 是服务器端脚本语言。
-
PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。
-
PHP 脚本在服务器上执行。
-
PHP 可免费下载使用。
PHP 文件是什么
-
PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
-
PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器
-
PHP 文件的默认文件扩展名是 ".php"
PHP 能做什么
-
PHP 可以生成动态页面内容
-
PHP 可以创建、打开、读取、写入、关闭服务器上的文件
-
PHP 可以收集表单数据
-
PHP 可以发送和接收 cookies
-
PHP 可以添加、删除、修改您的数据库中的数据
-
PHP 可以限制用户访问您的网站上的一些页面
-
PHP 可以加密数据
通过 PHP,您不再限于输出 HTML。您可以输出图像、PDF 文件,甚至 Flash 电影。您还可以输出任意的文本,比如 XHTML 和 XML。
为什么使用 PHP
-
PHP 可在不同的平台上运行(Windows、Linux、Unix、Mac OS X 等)
-
PHP 与目前几乎所有的正在被使用的服务器相兼容(Apache、IIS 等)
-
PHP 提供了广泛的数据库支持
-
PHP 是免费的,可从官方的 PHP 资源下载它: www.php.net
-
PHP 易于学习,并可高效地运行在服务器端
PHP 语法
PHP 脚本可以放在文档中的任何位置。
PHP 脚本以 <?php 开始,以 ?> 结束:
<?php // PHP 代码 ?>
PHP 文件的默认文件扩展名是 ".php"。
PHP 文件通常包含 HTML 标签和一些 PHP 脚本代码。
下面,我们提供了一个简单的 PHP 文件实例,它可以向浏览器输出文本 " Hello World! " :
<!DOCTYPE html> <html> <body> <h1>My first PHP page</h1> <?php echo "Hello World!"; ?> </body> </html>
PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。
通过 PHP,有两种在浏览器输出文本的基础指令:echo 和 print。
PHP 注释
<!DOCTYPE html> <html> <body> <?php // 这是 PHP 单行注释 /* 这是 PHP 多行 注释 */ ?> </body> </html>
PHP 变量
<?php $x=5; $y=6; $z=$x+$y; echo $z; ?>
与代数相类似
x=5
y=6
z=x+y
在代数中,我们使用字母(如 x),并给它赋值(如 5)。
从上面的表达式 z=x+y ,我们可以计算出 z 的值为 11。
在 PHP 中,这些字母被称为变量。
变量是用来存储数据的容器
与代数类似,可以给 PHP 变量赋予某个值(x=5)或者表达式(z=x+y)。
变量可以是很短的名称(如 x 和 y)或者更具描述性的名称(如 age、carname、totalvolume)。
PHP 变量规则:
-
变量以 $ 符号开始,后面跟着变量的名称
-
变量名必须以字母或者下划线字符开始
-
变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
-
变量名不能包含空格
-
变量名是区分大小写的($y 和 $Y 是两个不同的变量)
PHP 语句 和 PHP 变量都是区分大小写的 。
创建声明 PHP 变量
<?php $txt="Hello world!"; $x=5; $y=10.5; ?>
在上面的语句执行中,变量 txt 将保存值 Hello world!,且变量 x 将保存值 5。
注释:当您赋一个文本值给变量时,请在文本值两侧加上引号。
PHP 是一门弱类型语言
在上面的实例中,我们注意到,不必向 PHP 声明该变量的数据类型。
PHP 会根据变量的值,自动把变量转换为正确的数据类型。
在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。
PHP 变量作用域
变量的作用域是脚本中变量可被引用/使用的部分。
PHP 有四种不同的变量作用域:
- local
- global
- static
- parameter
局部和全局作用域
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:
<?php $x=5; // 全局变量 function myTest() { $y=10; // 局部变量 echo "<p>测试函数内变量:<p>"; echo "变量 x 为: $x"; echo "<br>"; echo "变量 y 为: $y"; } myTest(); echo "<p>测试函数外变量:<p>"; echo "变量 x 为: $x"; echo "<br>"; echo "变量 y 为: $y"; ?>
PHP global 关键字
global 关键字用于函数内访问全局变量。
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:
<?php $x=5; $y=10; function myTest() { global $x,$y; $y=$x+$y; } myTest(); echo $y; // 输出 15 ?>
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
上面的实例可以写成这样:
<?php $x=5; $y=10; function myTest() { $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y']; } myTest(); echo $y; ?>
Static 作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。
要做到这一点,请在您第一次声明变量时使用 static 关键字:
<?php function myTest() { static $x=0; echo $x; $x++; } myTest(); myTest(); myTest(); ?>
参数作用域
参数是通过调用代码将值传递给函数的局部变量。
参数是在参数列表中声明的,作为函数声明的一部分
<?php function myTest($x) { echo $x; } myTest(5); ?>
echo 和 print 语句
在 PHP 中有两个基本的输出方式: echo 和 print 。
echo 和 print 区别:
- echo - 可以输出一个或多个字符串
- print - 只允许输出一个字符串,返回值总为 1
提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。
echo - 输出
echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo 或 echo()。
echo 命令输出字符串(字符串可以包含 HTML 标签):
<html> <head> <title>PHP 学习</title> </head> <body> <?php echo "hello world"; echo "<h2> good good study</h2>"; ?> </body> </html>
使用 echo 命令输出变量和字符串:
<html> <head> <title>PHP 学习</title> </head> <body> <?php echo "hello world"; echo "<h2> good good study</h2>"; $name = "wjw"; $age = 18; // 创建一个数组 $cars = array("volvo","bmw","toyota"); echo $name; echo "<br>"; echo "I'm {$name}, 我今年{$age}岁了"; echo "<br>"; echo "我的汽车品牌有:{$cars[0]}"; ?> </body> </html>
print - 输出
print 同样是一个语言结构,可以使用括号,也可以不使用括号: print 或 print()。
使用 print 命令输出字符串和变量(字符串可以包含 HTML 标签):
<html> <head> <title>PHP 学习</title> </head> <body> <?php print "hello world"; print "<h2> good good study</h2>"; $name = "wjw"; $age = 18; // 创建一个数组 $cars = array("volvo","bmw","toyota"); print $name; print "<br>"; print "I'm {$name}, 我今年{$age}岁了"; print "<br>"; print "我的汽车品牌有:{$cars[0]}"; ?> </body> </html>
echo 和 print 语句的区别
1、echo 可以输出一个或多个字符串;
2、print 只允许输出一个字符串,返回值总为 1;
3、echo 输出的速度比 print 快;
4、echo 没有返回值,print 有返回值 1;
其他输出方式
echo()
可以一次输出多个值,多个值之间用逗号分隔。echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用。
print()
函数print()打印一个值(它的参数),如果字符串成功显示则返回true,否则返回false。
print_r()
可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Array开头。但print_r()输出布尔值和NULL的结果没有意义,因为都是打印"\n"。因此用var_dump()函数更适合调试。
var_dump()
判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型。此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
EOF(heredoc) 使用说明
PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字串的方法。
使用概述:
-
1. 必须后接分号,否则编译通不过。
-
2. EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
-
3. 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
-
4. 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
-
5. 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。
案例展示
<html> <head> <title>PHP 学习</title> </head> <body> <?php echo <<<EOF <h1>我是h1标签</h1> <h2>我是h2标签</h2> <h3>我是h3标签</h3> EOF; // 结束需要独立一行且前后不能空格 ?> </body> </html>
注意:
1. 以 <<<EOF 开始标记开始,以 EOF 结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。
2. 开始标记和结束标记相同,比如常用大写的 EOT、EOD、EOF 来表示,但是不只限于那几个(也可以用:JSON、HTML等),只要保证开始标记和结束标记不在正文中出现即可。
3. 位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符.或,来拼接,如下:
<html> <head> <title>PHP 学习</title> </head> <body> <?php $name="runoob"; $a= <<<EOF "abc"$name "123" EOF; // 结束需要独立一行且前后不能空格 echo $a; ?> </body> </html>
PHP 数据类型
- String (字符串)
- Integer (整型)
- Float (浮点型)
- Boolean (布尔型)
- Array (数组)
- Object (对象)
- NULL (空值)
String - 字符串
<?php $x = "Hello world!"; echo $x; echo "<br>"; $y = 'Hello PHP!'; echo $y; ?>
Integer - 整型
整数是一个没有小数的数字。
整数规则:
-
-
整数必须至少有一个数字 (0-9)
-
整数不能包含逗号或空格
-
整数是没有小数点的
-
整数可以是正数或负数
-
整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。
-
<?php $x = 5985; //var_dump() 函数返回变量的数据类型和值: var_dump($x); echo "<br>"; $x = -345; // 负数 var_dump($x); echo "<br>"; $x = 0x8C; // 十六进制数 var_dump($x); echo "<br>"; $x = 047; // 八进制数 var_dump($x); ?>
Float - 浮点型
浮点数是带小数部分的数字,或是指数形式。
<?php $x = 10.365; var_dump($x); echo "<br>"; $x = 2.4e3; var_dump($x); echo "<br>"; $x = 8E-5; var_dump($x); ?>
Boolean - 布尔型
布尔型可以是 TRUE 或 FALSE 。
$x=true; $y=false;
Array - 数组
数组可以在一个变量中存储多个值。
<?php $cars=array("Volvo","BMW","Toyota"); var_dump($cars); ?>
Object - 对象
对象数据类型也可以用于存储数据。
在 PHP 中,对象必须声明。
首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。
<?php class Car { var $color; function __construct($color = "green") { $this->color = $color; } function what_color() { return $this->color; } } ?>
NULL - 空值
NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。
NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。
<?php $x="Hello world!"; $x=null; var_dump($x); ?>
PHP - 常量
常量是一个简单值的标识符。该值在脚本中不能改变。
一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
注意: 常量在整个脚本中都可以使用。
设置常量
设置常量,使用 define() 函数,函数语法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
该函数有三个参数:
-
name:必选参数,常量名称,即标志符。
-
value:必选参数,常量的值。
-
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
创建一个 区分大小写的常量
<?php // 区分大小写的常量名 define("GREETING", "欢迎访问 Runoob.com"); echo GREETING; // 输出 "欢迎访问 Runoob.com" echo '<br>'; echo greeting; // 输出 "greeting" ?>
创建一个 不区分大小写的常量
<?php // 不区分大小写的常量名 define("GREETING", "欢迎访问 Runoob.com", true); echo greeting; // 输出 "欢迎访问 Runoob.com" ?>
常量是全局的
常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
以下实例演示了在函数内使用常量,即便常量定义在函数外也可以正常使用常量。
<html> <head> <title>PHP 学习</title> </head> <body> <?php define("GREETING", "欢迎访问 Runoob.com"); function myTest() { echo GREETING; } myTest(); // 输出 "欢迎访问 Runoob.com" ?> </body> </html>
【重要说明】博文仅作为本人的学习记录,论点和观点仅代表个人而不代表技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!
【博客园地址】叫我+V : http://www.cnblogs.com/wjw1014
【CSDN地址】叫我+V : https://wjw1014.blog.csdn.net/
【Gitee地址】叫我+V :https://gitee.com/wjw1014
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!