PHP学习笔记
本文是一些PHP的基础知识,自己看书的时候做的一些笔记。
PHP变量
- PHP 语句和 PHP 变量都是区分大小写的。
- PHP 没有声明变量的命令。
PHP 是一门弱类型语言
- 不必向 PHP 声明该变量的数据类型。
- PHP会根据变量的值,自动把变量转换为正确的数据类型。
- 在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。
作用域
局部变量和全局变量
global
可以将局部变量提升为全局变量。- PHP将所有全局变量存储在一个名为
$GLOBALS[index]
的数组中。index保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。 Static
作用域- 当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。要做到这一点,请在您第一次声明变量时使用 static 关键字。
- 参数作用域:属于函数的局部变量。
php中常见的输出语句
echo()
: 可以一次输出多个值,多个值之间用逗号分隔。echo
是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用。print()
: 函数print()
打印一个值(它的参数),如果字符串成功显示则返回true
,否则返回false
。print_r()
: 可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Array
开头。但print_r()
输出布尔值和NULL的结果没有意义,因为都是打印”\n”。因此用var_dump()
函数更适合调试。var_dump()
: 判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型。此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
数据类型
字符串(String)
- 双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符。 在单引号串中甚至反斜杠也失去了他的扩展含义(除了插入反斜杠\和插入单引号')。 所以,当你想在字串中进行变量代换和包含\n(换行符)等转义序列时,你应该使用双引号。单引号串可以用在其他任何地方,脚本中使用单引号串处理速度会更快些。
整型(Integer)
- 整数是一个没有小数的数字。
浮点型(Float)
-浮点数是带小数部分的数字,或是指数形式。
布尔型(Boolean)
数组(Array)
对象(Object)
- 类似于java的类
1 | <?php |
NULL值
- NULL值表示变量没有值。NULL是数据类型为NULL的值。
- NULL值指明一个变量是否为空值。同样可用于数据空值和NULL值的区别。
- 可以通过设置变量值为 NULL 来清空变量数据
字符串函数
strlen(string)
函数:返回字符串长度strpos(seacher,char)
函数:查找一个字符串在另一个字符串中第一次出现的位置
数组排序
sort()
- 对数组进行升序排列rsort()
- 对数组进行降序排列asort()
- 根据关联数组的值,对数组进行升序排列ksort()
- 根据关联数组的键,对数组进行升序排列arsort()
- 根据关联数组的值,对数组进行降序排列krsort()
- 根据关联数组的键,对数组进行降序排列
PHP 超级全局变量
$GLOBALS
:是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。$_SERVER
:是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。$_REQUEST
:用于收集HTML表单提交的数据。$_POST
:被广泛应用于收集表单数据,在HTMLform标签的指定该属性:"method="post"
。- 从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏)
- 并且对发送信息的量也没有限制。
$_GET
:同样被广泛应用于收集表单数据,在HTMLform标签的指定该属性:"method="get"
。$_GET
也可以收集URL中发送的数据。- 从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏)
- 并且对发送信息的量也有限制。
$_FILES
$_ENV
$_COOKIE
$_SESSION
PHP魔术变量
__LINE__
:文件中的当前行号。__FILE__
:文件的完整路径和文件名。__DIR__
:文件所在的目录。__FUNCTION__
:函数名称。__CLASS__
:类的名称。__TRAIT__
:trait的名称。__METHOD__
:类方法的名称。__NAMESPACE__
:命名空间的名称。
XSS又叫 CSS (Cross-Site Script)
跨站脚本攻击。恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。
正则
- 邮箱:
/([\w\-]+\@[\w\-]+\.[\w\-]+)/
- URL:
/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i
- 只有字母和空格:
/^[a-zA-Z ]*$/
Get 与 Post
何时用method=”get”?
- 在 HTML 表单中使用 method=”get” 时,所有的变量名和值都会显示在 URL 中。
- 注释:所以在发送密码或其他敏感信息时,不应该使用这个方法!
- 然而,正因为变量显示在URL中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。
- 注释:HTTP GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。
何时用method=”post”?
- 从带有 POST 方法的表单发送的信息,对任何人都是不可见的,并且对发送信息的量也没有限制。
- 然而,由于变量不显示在 URL 中,所以无法把页面加入书签。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 人间一趟!
评论