看了几天的书,今天开始动手编程了,发现自已对变量和作用域这方面理解不透,这里做个总结。
在编程的时候我们总免不了会犯错,调试和查看日志,是两个很重要的方法来帮我们调试程序。在第三天里,我已经安装了xdebug来帮助调试(日志系统还没有时间看,待研究……),这里介绍几个标准输出函数供调试的时候用。
-
echo() 打印一个或多个简单变量或值
-
print() 打印一个简单变量或值
-
printf() 打印一个格式化字符串
-
var_dump() 打印一个变量的类型和内容
-
printf_r() 递归打印一个数组
-
debug_backtrace() 返回一个包含调用栈和其他值的数组
关于变量
全局变量(全局作用域)
一个变量如果定义在全局作用域中,它就会在全局作用域中都可见,而在所有函数或类方法中都不可见。打个比方,函数或类方法都是有外壳的,全局变量不够强大,冲不进去,所以没办法使用它们。
<?php
$a = 7;
function test(){
$a = 20; //只可惜,在函数里该问不到全局变量
}
test();
echo "\$a = $a"; // $a = 7
?>
超全局变量(真正的全局作用域)
超全局变量就像是超级玛丽吃了无敌药水,连函数和类方法的外壳都可以冲进去了,它是真正的无敌的。到处都可以访问。
-
$GLOBALS 这是一个关联数组,包含全局作用域中所定义各个变量的引用
-
$_SERVER 服务器设置的变量
-
$_ENV 环境变量
-
$_GET 通过URL提供给脚本的变量
-
$_POST 通过HTTP POST提供给脚本的变量
-
$_COOKIE 通过HTTP cookie提供给脚本的变量
-
$_FILE 通过HTTP POST提供给脚本的变量
-
$_REQUEST GET、POST和COOKIE方法提供的所有变量
-
$_SESSION 目前在会话中注册的变量
如何让全局变量变成超全局变量?
方法一:
<?php
$a = 7;
function test(){
global $a;
$a = 20;
}
test();
echo "\$a = $a";
?>
增加global $a;这一行,使$a两个变量引用相同的内存,以后再在函数中使用时,仍需global关键字。
方法二:
<?php
$a = 7;
function test(){
$GLOBALS['a'] = 20;
}
test();
echo "\$a = $a";
?>
在超全局变量数组中定义一个变量
局部变量
与函数有关的变量(函数作用域)
-
局部变量
-
参数变量
-
静态变量
这是一个很神奇的东西,它仅在局部函数作用域中存在,且,再次调用函数时还能保留这个值(感觉和JS闭包的功能有点像)。
-
全局变量(见全局变量)
与类有关的变量
- 成员变量/属性
- 方法
- 静态变量(用::访问)
- 静态方法(用::访问)
- 类常量(用const定义,用::访问)
常量
常量的作用域和超全局作用域是一样的,无敌!
PHP中使用define()函数来定义一个常量的,其语法格式为:
bool defined(string $name, mixed $value [, bool case_$insensitive]
name:指定常量的名称
value:指定常量的值
insensitive:指定常量名称是否区分大小写,ture(不区分),false(区分),默认false。
常量和变量的有一个区别是:常量只能保存标量数据(字符串,布尔值,整数,浮点数)。
系统预定义常量(并非是真正的常量,因为这些所谓的常量会根据使用的场合改变值)
- __FILE__ 当前文件名
- __LINE__ 当前行号
- __FUNCTION__ 当前函数名
- __CLASS__ 当前类名
- __METHOD__ 当前方法名
- PHP_VERSION 存储当前PHP的版本号
- PHP_OS 存储当前服务器的操作系统
作用域
作用域是指在一个脚本中某个变量可以使用或可见范围。
- 内置的超级全局变量可以在脚本的任何地方使用和可见。
- 常量,一旦被声明,将可以在全局可见,也就是说,他们可以在函数内外使用。
- 在一个脚本中声明的全局变量在整个脚本中是可见的,但不是在函数内部。
- 函数内部使用的变量声明全局变量时,其名称要与全局变量名称一致。
- 在函数内部创建并被声明为静态的变量无法在函数外部可见,但是可以在函数的多次执行过程中保持该值。
- 在函数内部创建的变量对函数来说是本地的,而当函数终止时,该变量也就不存在了。
分享到:
相关推荐
10天学会php (word版) 十天学会PHP之第八天.doc 十天学会PHP之第二天.doc 十天学会PHP之第九天.doc 十天学会PHP之第六天.doc ...十天学会PHP之第四天.doc 十天学会PHP之第五天.doc 十天学会PHP之第一天.doc
在“十天学会php之第四天”的学习过程中,我们将深入探讨PHP这门强大的服务器端脚本语言的关键概念和核心语法。尽管十天的学习可能不足以让你立即成为PHP开发的专家,但这种系统化的学习方法确实可以帮助你构建一个...
"十天学会PHP之第一天"作为一个学习计划的起点,旨在为初学者提供一个快速掌握PHP基础知识的路径。PHP(Hypertext Preprocessor,超文本预处理器)以其开源、免费、易于学习的特点,成为许多开发者入门编程的首选。 ...
当我们谈论"全新PHP第三第四方支付源码API聚合支付多通道"时,我们指的是一个基于PHP开发的软件系统,该系统整合了多个第三方支付平台的接口,允许商家通过单一的接口实现多种支付方式,为用户提供更加便捷的支付...
1. **PHP环境搭建**:学习第一天,首先需要安装PHP运行环境,通常包括PHP解释器、Web服务器(如Apache或Nginx)以及数据库(如MySQL)。通过XAMPP或WAMP等集成环境可以简化这个过程。 2. **PHP语法基础**:了解PHP...
《PHP和MySQL Web开发 第四版》英文版是一本深入探讨使用PHP与MySQL进行Web开发的经典著作。本书针对初学者和经验丰富的开发者提供了全面而详细的知识,旨在帮助读者掌握这两种技术的结合,构建高效、安全且可扩展的...
第四天:PHP文件操作 PHP可以用来读取、写入、移动和删除文件,这对于构建动态网站至关重要。例如,你可以使用PHP处理用户上传的文件,或者生成动态内容保存到文件中。此外,目录操作也是文件系统交互的一部分,掌握...
《PHP入门到精通第四版》是一本针对初学者和进阶者精心编写的教程,旨在帮助读者全面掌握PHP网络开发的核心技术。这本书以其通俗易懂的语言和实例丰富的讲解,为学习PHP的人们提供了宝贵的资源。 PHP(Hypertext ...
第四天会介绍如何定义和调用自定义函数,以及内置的PHP函数,如array(), strlen(), strpos()等。理解函数的使用能提高代码的复用性和可维护性。 第五天:数组处理 PHP提供了强大的数组处理功能,第五天将详细介绍...
PHP第四方支付平台源码 企业级正规PHP第三方第四方zi付平台.zip源码介绍: 内附详细视频与文字安装教程。 说明: 升级更新增加: 1x - 增加登录注册页面 2x - 增加环迅IPS支付方式 3x - 增加易宝支付 升级...
《PHP与MySQL程序设计 第4版 》pdf与源码 是全面讲述PHP与MySQL的经典之作 书中不但全面介绍了两种技术的核心特性 还讲解了如何高效地结合这两种技术构建健壮的数据驱动的应用程序 《PHP与MySQL程序设计 第4版 》...
在“十天学会php之第1-10天”的教程中,我们将逐步学习PHP的基础知识,包括变量定义、流程控制和数据库操作等,旨在帮助新手快速入门PHP编程。 1. **PHP嵌入方法**: PHP代码可以使用`<?php ... ?>`或者简写`...
书名:PHP与MySQL程序设计 版本: 第四版 高清pdf格式 含目录
《PHP与MySQL程序设计》第四版是一本深入探讨PHP与MySQL集成开发的权威指南,旨在帮助读者掌握这两种技术的核心概念并有效地将它们应用于构建稳定、高性能的Web应用程序。PHP是一种广泛使用的开源脚本语言,尤其适合...
《PHP入门到精通(第四版)》是一本旨在帮助初学者和有志于深入PHP编程技术的读者全面掌握PHP语言的电子书籍。该书通过详细讲解和实例演示,旨在让读者能够从零基础逐渐达到精通PHP的程度。在压缩包中,唯一的文件名...
PHP与MySQL程序设计(第四版)part1 pdf 共两个包,这是第二个。
第四天,你将学习函数的使用,包括内置函数和自定义函数。函数是组织代码的有效方式,可以提高代码的可读性和复用性。 第五天,会讲解数组的深入应用,包括一维数组、多维数组以及数组操作函数,如遍历、查找、排序...
《21天学通PHP》是一本旨在帮助初学者快速掌握PHP编程技能的教程,由经验丰富的作者白志强和白志刚共同编写。书中的内容结构严谨,覆盖面广,适合那些希望在短时间内入门PHP编程的读者。以下是根据标题、描述以及...
如何在十天内学会php之第一天 如何在十天内学会php之第二天 如何在十天学内会php之第三天 如何在十天学内会php之第四天 如何在十天内学会php之第五天 如何在十天内学会php之第六天 如何在十天内学会php之第七天 如何...
第4天:数组与字符串操作 在PHP中,数组用于存储多个值,而字符串则用于处理文本数据。你将学习如何创建、遍历和操作数组,以及进行字符串的拼接、查找、替换和分割等操作。 第5天:文件系统操作 PHP提供了丰富的...