> php教程 > php手册 > php查漏补缺之变量(一)

php查漏补缺之变量(一)

WBOY
풀어 주다: 2016-06-06 20:00:06
원래의
1170명이 탐색했습니다.

1.关于普通变量 与 global变量的区别 首先 PHP 是一门松散类型的语言(Loosely Typed Language)。 不需要在设置变量之前声明该变量。 $abc= 123asdasdasd;echo br;echo $abc;echo br/;var_dump($abc);$abc = 234;echo br;echo $abc;var_dump($abc); 输出你

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

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

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

로그인 후 복사
$abc= "123asdasdasd";

echo "<br>";
echo $abc;
echo "<br>";
var_dump($abc);

$abc = 234;

echo "<br>";
echo $abc;
var_dump($abc);
로그인 후 복사

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

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

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

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

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


关于global

<?php $a = 1;
$b = 2;

function Sum()
{
    global $a, $b;

    $b = $a + $b;
}

Sum();
echo $b;
?>
로그인 후 복사

上面这个例子 输出是3 

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

请看下面例子

<?php $a = 1;
$b = 2;

function Sum()
{
    //global $a, $b;

    $b = $a + $b;
}

Sum();
echo $b;
?>
로그인 후 복사

这个例子 输出的是2

为什么呢?

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

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

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

<?php $a = 1;
$b = 2;

function Sum()
{
    //global $a, $b;

    $b = 5;
	echo $b;
}
 Sum();

echo "<br/>";
echo $b;
?>
로그인 후 복사

这里输出的是 5   和  2 
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿