php学习(二)关于php的成员变量和全局变量

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

$value = 1;


function test1() {

    echo $value;

}

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

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

function test1($value) {

    echo $value;

}

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

$fileUplaod='test';

function create() {

   global $fileUpload;

   echo $fileUpload;

}


或者

global $fileupload;

$fileupload = 22;

function create() {

   echo $fileupload;

}

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

下面是三个很好的理由:

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

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

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

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

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

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


所以这个时候可以考虑单例的方式:

具体还有其他的方式,可以百度:在PHP中使用全局变量的几种方法


PS:例外今天在linux下还遇到了创建文件夹的问题,

首先是一些路径的基本概念:

. 表示当前目录
.. 表示上级目录(父目录)
~ 代表"主目录"
以"/" 开始的目录路径表示: 绝对路径, 反之: 相对路径
相对路径: 是相对于当前目录. ".", ".." 都是相对路径
以"." 为开头的文件/目录是隐藏的

在一个test文件夹下用该代码创建文件夹总是失败

$destination_folder = 'test';
if(!file_exists($destination_folder))
{
    if(mkdir($destination_folder,0777)) {
        echo 'succsss';
    }else {
        echo 'failed';
    }

最后发现是权限的问题,我在这个子文件夹没有w的权利,需要chmod以下然后就可以创建成功了。

另外附上一个zenddebugger的文章:

http://www.ibm.com/developerworks/cn/education/opensource/os-php-eclipse-pdt-debug/section5.html


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值