知识屋:更实用的电脑技术知识网站
所在位置:首页 > 编程技术 > PHP编程

php查漏补缺之变量(一)

发布时间:2015-05-27 19:22:35作者:知识屋

1.关于普通变量 与 global变量的区别

首先 PHP 是一门松散类型的语言(Loosely Typed Language)。

不需要在设置变量之前声明该变量。

$abc= "123asdasdasd";echo "
";echo $abc;echo "
";var_dump($abc);$abc = 234;echo "
";echo $abc;var_dump($abc);

输出你懂的,是123 和 234,变量就像一个盒子 ,我们把东西放进一个名为abc的盒子,盒子只能同时存在一种数据类型

疑问:上面的 $abc= "123asdasdasd"; 不是同时存在 123 和 asdsdasd 这2种数据吗?

不是的 我们用var_dump打印后 发现 是string 类型,也就是字符串类型,因为在php中变量内容凡是打单引号或双引号的,都会被视作字符串去处理

下面的$abc=123;则会看作是数字

在开发过程中 如果要在中间插入代码 就要注意了 ,命名的时候,要看看前面的代码 有没这个名字 ,后面有没用到。如果有就不能起相同的名字了


关于global


上面这个例子 输出是3

如果我把上面的global $a,$b注释掉会怎么样呢

请看下面例子


这个例子 输出的是2

为什么呢?

这是因为$a =1, $b=2; 这里声明的只是局部变量 ,而方法体内和方法体外,是2个不同的作用域.

所以第二个例子中的$b与 方法体无关,可以看作是2个不同的变量。所以得出的是2. 然而 第一个例子 ,我们把$a 和 $b 全局声明后 ,变量就能在该方法体内和方法体外使用,sum操作的也就是$a =1, $b=2的值,所以最后得出3 ,其实依我看,在方法体内用global 声明变量,也可以看作是一个传值的过程。因为如果sum下面还有一个函数需要调用$a,$b 还需要global一次

如果还不明白作用域的问题,可以再看以下例子

";echo $b;?>

这里输出的是 5 和 2

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜