PHP 脚本可以放在文档中的任何位置。
PHP 脚本以 <?php 开始,以 ?> 结束。PHP 中的每个代码行都必须以分号结束。
- php有两种在浏览器输出文本的基础指令:echo 和 print。
echo - 可以输出一个或多个字符串
print - 只允许输出一个字符串,返回值总为 1
PHP变量
变量以 $ 符号开始,后面跟着变量的名称。PHP 没有声明变量的命令。变量在您第一次赋值给它的时候被创建。
PHP 是一门弱类型语言,PHP 会根据变量的值,自动把变量转换为正确的数据类型。在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。
PHP变量作用域
- 全局作用域(global)
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字 - 局部作用域(local)
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问 - Static 作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除,可以使用 static关键字 - 参数作用域(parameter)
参数是通过调用代码将值传递给函数的局部变量。
参数是在参数列表中声明的,作为函数声明的一部分
对象
在 PHP 中,对象必须声明。
首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。
然后我们在类中定义数据类型,然后在实例化的类中使用数据类型
常量
常量是一个简单值的标识符。该值在脚本中不能改变。 (常量名不需要加 $ 修饰符)。
注意: 常量在整个脚本中都可以使用。
设置常量,使用 define() 函数,函数语法如下:
define(string constant_name, mixed value, case_sensitive = true)
该函数有三个参数:
- constant_name:必选参数,常量名称,即标志符。
- value:必选参数,常量的值。
- case_sensitive:可选参数,指定是否大小写敏感,设定为 true 表示不敏感。
数组排序
PHP - 数组排序函数
- sort() - 对数组进行升序排列
- rsort() - 对数组进行降序排列
- asort() - 根据关联数组的值,对数组进行升序排列
- ksort() - 根据关联数组的键,对数组进行升序排列
- arsort() - 根据关联数组的值,对数组进行降序排列
- krsort() - 根据关联数组的键,对数组进行降序排列
超级全局变量
PHP中预定义了几个超级全局变量(superglobals),这意味着它们在一个脚本的全部作用域中都可用。
-
$GLOBALS
$GLOBAL 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。 -
$_SERVER
$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目。 -
$_REQUEST
$_REQUEST 用于收集HTML表单提交的数据。 -
$_POST
$_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method=“post” -
$_GET
$_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method=“get”。
$_GET 也可以收集URL中发送的数据。 -
$_COOKIE 和 $_SESSION
两个都可以用来存私密的东西,同样也都有有效期的说法。
session是放在服务器上的,过期与否取决于服务期的设定,cookie是存在客户端的,过去与否可以在cookie生成的时候设置进去。
- cookie数据存放在客户的浏览器上,
session数据放在服务器上 - cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session - session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE - 单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中
- $_FILES
使用 $_FILES,你可以从客户计算机向远程服务器上传文件。 - $_ENV
$_ENV只是被动的接受服务器端的环境变量并把它们转换为数组元素。
魔术变量
有八个魔术常量它们的值随着它们在代码中的位置改变而改变。
-
LINE_
文件中的当前行号。 -
FILE
文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。 -
DIR
文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。 -
FUNCTION
函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。 -
CLASS
CLASS 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。 -
TRAIT
Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。 -
METHOD
METHOD 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。 -
NAMWSPACE(命名空间)
NAMESPACE 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。
命名空间
PHP 命名空间(namespace)是在PHP 5.3中加入的,如果你学过C#和Java,那命名空间就不算什么新事物。 不过在PHP当中还是有着相当重要的意义。
PHP 命名空间可以解决以下两类问题:
- 用户代码与PHP内部的类/函数/常量之间的名字冲突。
- 创建别名(或简短)的名称,提高源代码的可读性。
默认情况下,所有常量、类和函数名都放在全局空间下,就和PHP支持命名空间之前一样。
如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间。
在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的 declare 语句。所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前。