前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于php的成员变量和全局变量

关于php的成员变量和全局变量

原创
作者头像
V站CEO-西顾
发布2018-06-10 11:19:37
3K1
发布2018-06-10 11:19:37
举报
文章被收录于专栏:V站

其实php中是没有成员变量一说的,比如

代码语言:javascript
复制
$value = 1;function test1() {    echo $value;}

这样写是会报错的,会说你没有define $value;

所以这种情况你需要将变量作为函数参数如下:

代码语言:javascript
复制
function test1($value) {    echo $value;}

php中的全局变量是global定义下的全局变量,是真正的属于当前页面,或者当前文件都能使用的比如:

代码语言:javascript
复制
$fileUplaod='test';function create() {   global $fileUpload;   echo $fileUpload;}

或者

代码语言:javascript
复制
global $fileupload;$fileupload = 22;function create() {   echo $fileupload;}

这样也是可以的,对于一些基本类型的变量可以使用这种全局变量,但是对于像一些数据库连接等对象或者变量,并不推荐使用全局变量理由如下:

下面是三个很好的理由:

1、  代码重用几乎是不可能的

如果一个函数依赖于全局变量,那么想在不同的环境中使用这个函数几乎是不可能的。另外一个问题就是你不能提取出这个函数,然后在其他的代码中使用。

2、  调试并解决问题是非常困难的

跟踪一个全局变量比跟踪一个非全局变量困难的多。一个全局变量可能会在一些不明显的包含文件中被重新定义,即使你有一个非常好的程序编辑器(或者IDE)来帮助你,你也得花了几个小时才能发现这个问题所在。

3、  理解这些代码将是非常难的事情

你很难弄清楚一个全局变量是从哪里来得,它是用来做什么的。在开发的过程中,你可能会知道知道每一个全局变量,但大概一年之后,你可能会忘记其中至少一般的全局变量,这个时候你会为自己使用那么多全局变量而懊悔不已。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档