PHP中的变量、常量、函数详解
变量
概念
内存中临时存储数据的一个空间。
(变量名必须区分大小写)
声明变量
$变量名 = 变量值;
删除变量
删除变量就是将变量从内存中销毁。
unset(变量名);
可变变量
$$变量名;
$v = 'age'; $age = 20; echo $$v; // 输出结果为20
预定义变量
$_GET:接收get请求提交的数据; $_POST:接收post请求提交的数据; $_REQUEST:接收get或post请求提交的数据; $_SERVER:记录了服务器端与客户端的相关信息; $_COOKIE:一种会话技术; $_SESSION:一种会话技术; $_FILES:用于记录用户上传的文件信息; $GLOBAL:用于记录全局变量;变量的声明周期
全局变量
生命周期是从脚本执行开始到脚本执行结束。
局部变量
生命周期是从函数执行开始,到函数执行结束。
静态变量
概念
static关键字声明的变量(不能重复定义)
原理
静态变量在函数多次被调用时,只会被初始化一次,并且静态变量的值并不会随着函数执行后空间的销毁而被销毁。在函数下一次调用时,仍然可以访问其值。
常量
概念
内存中永久存储数据的一个空间,一旦定义不可改变,不允许删除。
(常量名默认区分大小写,建议全大写)
定义常量
define(‘常量名’,常量值); const 常量名 = 常量值;define和const区别
define可以在分支结构中定义常量,const不可以; define定义常量时可以设置是否区分大小写,const不可以;常量函数
defined(); 判断常量是否已定义。 get_defined_constants();获取所有常量。魔术常量
__FILE__ 用于获取前文件名完整路径及文件名; __DIR__ 用于获取当前文件的路径; __LINE__ 用于获取当前行号; __FUNCTION__ 用于获取当前函数的函数名; __METHOD__ 用于获取当前方法的方法名; __CLASS__ 用于获取当前类的类名; __NAMESPACE__ 用于获取当前空间的空间名。
数据类型
三大类·八小类
标量(scalar)数据类型int 整型 float 浮点类型 boolean 布尔类型 string 字符串
复合数据类型
array 数组 object 对象
特殊数据类型
null null resource 资源类型
字符串
字符串就是使用单引号或双引号括起来的0个或多个字符。
使用单引号定义的字符串能够被转义的字符有 \ \ 单引号定义的字符串中的变量不能解析其值。
使用双引号定义的字符串
能够被转义的字符有 \” \t \r \n \ $ 双引号定义的字符串中的变量的值可以被解析。
转义符
转义符:\
用于将程序语言所赋予的某些字符的特殊功能转义掉。输出不可见的符。
转义符能够转义的字符:
\’ 单引号
\” 双引号
\t tab符
\r 回车符
\n 换行符
\ \
$ $
类型转换及判断
强转boolean类型:
(0、0.0、字符空、字符0、空数组、null是等效于布尔false)
isset():用于判断变量是否有设置值(判断变量的值是否为null值)
empty():用于判断变量v的值是否为”空”,此处的空表示只要是等效于布尔false的值都被empty认为是空。如果是空返回true,否则返回false。
函数
概念
使用function关键字定义,用{}包括的一段功能代码块。
(函数名不区分大小写)
语法
声明:
function funName(形参列表){ // 函数体 【return 值】 }
调用:
函数名(函数值);
作用域
默认php中有很”清晰”的作用域,外部只能访问外部的,内部只能访问内部。 在函数外部定义的变量及其作用域就是:全局变量和全局作用域。 在函数内部定义的变量及其作用域就是:局局变量和局部作用域。 常量没有作用域限制,一个脚本中的常量,在任何的位置都可以访问。 预定义变量(超全局变量)也不受作用域的限制。跨作用域访问
1、通过参数传址:在形参前使用&,可以达到内部访问外部;
(以下例子可以实现函数内部修改函数外部的变量)
$a = 10; function aa(&$a){ $a = $a+10; return $a; } echo aa($a); //输出结果为20 echo $a; //输出结果为20
2、$GLOBALS
$GLOBALS:全局作用域中可用的全部变量集合(一个包含了全部变量的全局组合数组)
(以下例子通过$GLOBALS实现函数内部获取函数外部的变量)
$a = 1; $b = 2; function aa(){ $c = $GLOBALS['a'] + $GLOBALS['b']; return $c; } echo aa(); //输出结果为3
3、global关键字
语法
global 变量名;
说明
在函数内部建立一个与函数外部同名的变量的引用。
如果外部有这样的同名变量,会在外部创建一个同名的变量。
数组
概念
数组是一种数据的集合。
数组主要是用于存储具有行列特征(表格)的数据。
分类
索引数组
数组的下标是整数。这样的数组就是索引数组
(在php中数组的下标可以不连续)
关联数组
数组的下标是字符串。这样的数组就是关联数组。
数组创建
// 索引数组
// 关联数组
数组遍历
for
for循环是使用循环控制变量来模拟下标的方式来遍历数据,只能遍历下连续或有规则
$arr = [10,20,30,40,50]; for($i=0;$i
foreach
语法:foreach(
$arr = ['one'=>10,'two'=>20,'three'=>30,'four'=>40,'five'=>50]; foreach ($arr as $k => $v) { echo $k."=>".$v." "; }
while-each-list
each()
用于获取当前指针所指向的元素键名与键值,并以索引元素与关系元素两种形式表示,同时将指针下移一行。
list()
语法:list(变量列表)=
$arr = ['one'=>10,'two'=>20,'three'=>30,'four'=>40,'five'=>50]; while(list($k,$v) = each($arr)){ echo $k."=>".$v." "; }
数组函数
count() – 计算数组长度; array_keys() – 获取数组元素所有键名; array_values() – 获取数组元素所有键值; array_key_exists(key,arr)– 用于判断某个键名是否存在于数组中,如果存在则返回true,否则 返回false; in_array(value,arr)
– 用于判断某个键值是否存在于数组中,如果存在则返回true,否则 返回false; array_merge(数组1,数组2…) – 数组合并; sort() – 对数组按键值进行升序排序; rsort() – 对数组按键值进行降序排序; extract() – 用于解压数组,将关联元素转换为以键名为变量名的变量。
上一篇: 大学生苦啊都不敢睁眼
下一篇: 看我独门秘籍吐手
推荐阅读
-
php中过滤html代码的函数 提高程序安全性_PHP
-
PHP各版本的函数类型声明详解
-
php判断常量、变量和函数是否存在
-
PHP中10个不常见却非常有用的函数_PHP教程
-
UCenter中的一个可逆加密函数authcode函数代码_php技巧
-
PHP中GD库的官方站文档中有显示ImageGifAnimBegin这个函数,为什么小弟我用在PHP中会提示undefined function
-
PHP中 htmlspecialchars 函数传入中文变量值后返回空字符串
-
PHP中的浅复制与深复制的实例详解
-
php中的字符编码转换函数用法示例,php示例_PHP教程
-
php数组函数序列之array_pop() - 删除数组中的最后一个元素_PHP教程