频道栏目
首页 > 程序开发 > Web开发 > php > 正文
PHP中的变量、常量、函数详解
2017-12-06 10:36:56      个评论    来源:木公007的博客  
收藏   我要投稿

变量

概念

内存中临时存储数据的一个空间。

(变量名必须区分大小写)

声明变量

$变量名 = 变量值;

删除变量

删除变量就是将变量从内存中销毁。

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中数组的下标可以不连续)

关联数组
数组的下标是字符串。这样的数组就是关联数组。

数组创建

// 索引数组
arr1=array(10,20,30,40,50);arr2 = [10,20,30,40,50];

// 关联数组
arr3=array(键名=>键值,键名=>键值,….);arr4 = [键名=>键值, 键名=>键值,….];

数组遍历

for

for循环是使用循环控制变量来模拟下标的方式来遍历数据,只能遍历下连续或有规则

$arr = [10,20,30,40,50];
for($i=0;$i
foreach

语法:foreach(arras【key=>】$value){//循环体}

$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;将数组arr中的索引元素赋值给变量列表中的变量。

$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数组排序讲解之按照某个字段排序(实例)
下一篇:php如何计算出两个经纬度之间的距离?(单位:米)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站