PHP001
PHP变量规则
- 变量以$符号开头,其后是变量的名称;
- 变量名称必须已字母或者下划线开头;
- 变量名称不能以数字开头;
- 变量名称只能包含字母数字字符和下划线(A-z、0-9以及 _ );
- 变量名称对大小写敏感($y和$Y是两个不同的变量)
注释:PHP变量名称对大小写敏感
创建PHP变量
PHP变量没有创建变量的命令。变量会在首次为其赋值时被创建。
PHP是一门类型松散的语言
注意我们不必告知PHP变量的数据类型。
PHP根据它的值,自动把变量转换为正确的数据类型。
在诸如C和C++以及Java之类的语言中,程序员必须在使用变量之前声明他的名称和类型。
PHP变量作用域
- local(局部)
- global(全局)
- static(静态)
PHP global关键词
global关键词用于在函数内访问全局变量,即可以在函数内部变量前面使用global关键词。
PHP同时在名为$GLOBALS[index]的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。如:
PHP static关键词
通常在函数完成/执行后,会删除所有的变量。不过,有时我需要不删除某个局部变量,可以在函数内首次声明变量时使用static关键词。
PHP echo和print语句
- echo 能够输出一个以上的字符串;
- print 只能输出一个字符串,并始终返回1。
PHP数据类型
var_dump() 返回变量的数据类型和值。
PHP数组的数据类型:
PHP字符串函数
strlen():返回字符串的长度。
str_word_count() : 对字符串中的 单词进行计数。
strrev() : 反转字符串。
strpos() :用于检索字符串内指定的字符或者文本,如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。
str_replace() 函数用一些字符串替换字符串中的另一些字符。
PHP常量
常量名称前面没有$符号,与变量不同,常量贯穿整个脚本是自动全局的。
如需设置常量,请使用 define()
函数 – 它使用三个参数:
- 首个参数定义常量的名称
- 第二个参数定义常量的值
- 可选的第三个参数规定常量名是否对大小写不敏感。默认是 false。
PHP字符串运算符
PHP比较运算符
PHP比较运算符用于比较两个值(数字或者字符串):
PHP数组运算符
PHP foreach循环
foreach循环只适用于数组,并用于便利数组中的每一个键/值对。
每进行一次循环迭代,当前数组元素的值就会被赋值给 $value 变量,并且数组指针会逐一地移动,直到到达最后一个数组元素。
PHP函数
函数名对大小写不敏感。
PHP数组
在 PHP 中,有三种数组类型:
-
索引数组 – 带有数字索引的数组
-
关联数组 – 带有指定键的数组
- 多维数组 – 包含一个或多个数组的数组
count()函数用于返回数组的长度。
PHP中数组的排序函数
- sort() – 以升序对数组排序
- rsort() – 以降序对数组排序
- asort() – 根据值,以升序对关联数组进行排序
- ksort() – 根据键,以升序对关联数组进行排序
- arsort() – 根据值,以降序对关联数组进行排序
- krsort() – 根据键,以降序对关联数组进行排序
PHP全局变量——超全局变量
超全局变量在PHP4.1.0中引入,是在全部作用域中始终可用的内置变量。在函数或方法中无需执行 global $variable; 就可以访问它们。https://www.w3school.com.cn/php/php_superglobals.asp
- $GLOBALS
$GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。
PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。
-
$_SERVER 保存关于报头、路径和脚本位置的信息。
-
$_REQUEST 用于收集 HTML 表单提交的数据。
-
$_POST 广泛用于收集提交 method=”post” 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。
-
$_GET 可用于收集提交 HTML 表单 (method=”get”) 之后的表单数据; 也可以收集 URL 中的发送的数据。
-
$_FILES
-
$_ENV
-
$_COOKIE
-
$_SESSION
PHP 超全局变量 $_GET 和 $_POST 用于收集表单数据(form-data)。
GET vs. POST
GET 和 POST 都创建数组(例如,array( key => value, key2 => value2, key3 => value3, …))。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。
GET 和 POST 被视作 $_GET 和 $_POST。它们是超全局变量,这意味着对它们的访问无需考虑作用域 – 无需任何特殊代码,您能够从任何函数、类或文件访问它们。
$_GET 是通过 URL 参数传递到当前脚本的变量数组。
$_POST 是通过 HTTP POST 传递到当前脚本的变量数组。
何时使用 GET?
通过 GET 方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在 URL 中)。GET 对所发送信息的数量也有限制。限制在大约 2000 个字符。不过,由于变量显示在 URL 中,把页面添加到书签中也更为方便。
GET 可用于发送非敏感的数据。
何时使用 POST?
通过 POST 方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入 HTTP 请求的主体中),并且对所发送信息的数量也无限制。
此外 POST 支持高阶功能,比如在向服务器上传文件时进行 multi-part 二进制输入。
不过,由于变量未显示在 URL 中,也就无法将页面添加到书签。
什么是 $_SERVER[“PHP_SELF”] 变量?
$_SERVER[“PHP_SELF”] 是一种超全局变量,它返回当前执行脚本的文件名。该变量能够被黑客利用进行XSS攻击。
因此,$_SERVER[“PHP_SELF”] 将表单数据发送到页面本身,而不是跳转到另一张页面。这样,用户就能够在表单页面获得错误提示信息。
什么是 htmlspecialchars() 函数?
htmlspecialchars() 函数把特殊字符转换为 HTML 实体。这意味着 < 和 > 之类的 HTML 字符会被替换为 < 和 > 。这样可防止攻击者通过在表单中注入 HTML 或 JavaScript 代码(跨站点脚本攻击)对代码进行利用。
在用户提交该表单时,我们还要做两件事:
- (通过 PHP trim() 函数)去除用户输入数据中不必要的字符(多余的空格、制表符、换行)
- (通过 PHP stripslashes() 函数)删除用户输入数据中的反斜杠()
我们可以创建一个test_input() 函数,用于检查每个 $_POST 变量
preg_match() 函数
检索字符串的模式,如果模式存在则返回 true,否则返回 false。例如检查输入的字段是否包含字母和空格。
以下的代码用于验证URL:
PHP ——如何在用户提交表单后保留输入字段中的值
(PHP基础教程和PHP表单部分到此结束!!!)