PHP463.com 变量的定义方法

变量的定义
⚑变量的类型
⚑变量的使用
变量即是存在于内存中可以不断变化的一个个对象,我们可以将内存想象成一个街道,街道中有许多住户,每位住户都会有自己的门牌号码,这就好比是内存中的地址(C语言中经常提到的一个概念,在这里我们就不多讨论了),对于其中一家住户我们可以说是1号楼1号,还可以说成是王小明家,用一个名字来代替一个地址。而王小明家里某一时刻有几个人就是一个变化的量了,可能中午有3个人,下午只有1个人,晚上有5个人。因此,对于内存中的某一地址我们要引用,也可以叫它为A,或者area。这就是变量了。
下面来演示一下PHP中变量的声明。
用“$”加一个变量名即可,如$a,$var_name。
PHP中变量的声明注意3点:
、变量名只能由英文字母(A-Z,a-z)、数字(0-9)和下划线构成。
、PHP中变量名是区分大小写的,即$VAR_NAME和$var_name就是两个不同的变量。
、一个变量声明或者赋值结束时必须用一个分号结束(;)。
PHP中对变量的类型规定非常简单,一般情况下不需要用关键字声明,用赋值的形式体现就可以了。
如,声明一个整型变量
$x=100;
声明一个字符型变量
$str=”Iam a Chinese!”;
声明一个布尔型变量
$bool=true;
在网页中使用变量。
例,我们要在网页中显示一句话,“我是一个中国人”,”我今年28岁了”。

变量用于存储值,比如数字、文本字符串或数组。

复制代码 代码如下:

一旦设置了某个变量,我们就可以在脚本中重复地使用它。

<?php
$str=”我是一个中国人”;
$age=28;
echo$str.”<br>”;
echo”我今年”.$age.”岁了”;
?>

PHP 中的所有变量都是以 $ 符号开始的。

第1行”<?php”,这是一个PHP文件开始的标记,表明从此向下开始是PHP代码了。
第2行$str=”我是一个中国人”;,定义一个字符串变量str,它的值是”我是一个中国人”。
第3行$age=28;,定义一个整型变量age,并给它赋值为28。
第4行echo$str.”<br>”;,echo是PHP中用来输出的关键字,跟随在它后面的内容表明是需要输出的内容,即$str是需要输出的变量,而在$str后的.是用来连接多个变量或变量与一般内容的标记,在这里表明$str后就将显示一个换行符号<br>。
第5行echo”我今年”.$age.”岁了”;,这句话的理解方式与第4行相同。即将“我今年28岁了”这句话分成3部分,“我今年”是第一部分,28是用变量$age来替代,“岁了”是第3部分,它们之间用.来连接的。
第6行”?>”表示这段PHP文件结束了。
至此,任务1结束。到现在,你可以将你要说的话用PHP的形式在网页上表达出来了。

在 PHP 中设置变量的正确方法是:

您可能感兴趣的文章:

$var_name = value;PHP 的入门者往往会忘记在变量的前面的 $
符号。如果那样做的话,变量将是无效的。

让我们试着创建一个存有字符串的变量,和一个存有数值的变量:

如果对于变量和常量的定义,你会注意几个方面呢?你可能会想到:

如何定义变量,它和C# 等语言有什么不同呢?
变量区分大小写吗?
PHP的变量还有其他重要的吗?

常量和变量的定义一样吗?
 分别讲述吧。
1.如何定义变量,它和C# 等语言有什么不同呢?
   PHP
中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。例如:
<?php教程
 $var=’Jim’;
  $VAR=’Kimi;
  echo “$var,$VAR”;//输出“Jim,Kimi”
 ?>你可能还关心变量的命名,其实和大多数语言一样。

  1. 变量区分大小写吗?
       如 1里说的,区分大小写。
     
    注意,需要说明的一点是自PHP4以来,引入了引用赋值的概念,其实和多数语言的引用类似,不过我觉得最类似的是C/C++.因为它也用到了”&”符号。例如: 
    1 <?php
    2 $foo = ‘Bob’;              // 赋值’Bob’给foo
    3 $bar = &$foo;              // 通过$bar引用.注意&符号
    4 $bar = “My name is $bar”;  // 修改 $bar
    5 echo $bar;
    6 echo $foo;                // $foo 也修改了.
    7 ?> 和其他语言一样,只能对有变量名的变量才可以引用。
  2. PHP其他重要点
    预定义变量
    预定义变量在PHP是一个重要的概念。 PHP
    提供了大量的预定义变量。由于许多这些变量依赖于运行的服务器的版本和设置,及其它因素,所以并没有详细的说明文档。一些预定义变量在
    PHP 以命令行形式运行时并不生效。

需要注意的是 在PHP 4.2.0 以及后续版本中,PHP 指令 register_globals
的默认值为 off。这是 PHP 的一个主要变化。让 register_globals 的值为 off
将影响到预定义变量集在全局范围内的有效性。例如,为了得到 DOCUMENT_ROOT
的值,将必须使用 $_SERVER[‘DOCUMENT_ROOT’] 代替
$DOCUMENT_ROOT,又如,使用 $_GET[‘id’] 来代替 $id 从 URL
http://www.example.com/test.php?id=3 中获取 id 值,亦或使用
$_ENV[‘HOME’] 来代替 $HOME 获取环境变量 HOME 的值。

从 PHP 4.1.0 开始,PHP 提供了一套附加的预定数组,这些数组变量包含了来自
web
服务器(如果可用),运行环境,和用户输入的数据。这些数组非常特别,它们在全局范围内自动生效,例如,在任何范围内自动生效。因此通常被称为自动全局变量(autoglobals)或者超全局变量(superglobals)。(PHP
中没有用户自定义超全局变量的机制。)超全局变量罗列于下文中;而且,你也将注意到旧的预定义数组($HTTP_*_VARS)仍旧存在。自
PHP 5.0.0 起,长格式的 PHP 预定义变量可以通过设置 register_long_arrays
来屏蔽。
下表是PHP的超全局变量:
超全局变量
 描述
 
$GLOBALS
包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键名为全局变量的名称。从
PHP 3 开始存在 $GLOBALS 数组。
$_SERVER 变量由 web
服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组
$HTTP_SERVER_VARS 数组(依然有效,但反对使用)。
$_GET 经由 URL 请求提交至脚本的变量。类似于旧数组 $HTTP_GET_VARS
数组(依然有效,但反对使用)。
$_POST 经由 HTTP POST 方法提交至脚本的变量。类似于旧数组
$HTTP_POST_VARS 数组(依然有效,但反对使用)。
$_COOKIE 经由 HTTP Cookies 方法提交至脚本的变量。类似于旧数组
$HTTP_COOKIE_VARS 数组(依然有效,但反对使用)。
$_FILES 经由 HTTP POST
文件上传而提交至脚本的变量。类似于旧数组
$HTTP_POST_FILES 数组(依然有效,但反对使用)
$_ENV 执行环境提交至脚本的变量。类似于旧数组 $HTTP_ENV_VARS
数组(依然有效,但反对使用)。
$_REQUEST  经由 GET,POST 和 COOKIE
机制提交至脚本的变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照
php.ini 中的 variables_order 配置指示来定义。此数组在 PHP 4.1.0
之前没有直接对应的版本。参见
import_request_variables()。
$_SESSION 当前注册给脚本会话的变量。类似于旧数组 $HTTP_SESSION_VARS
数组(依然有效,但反对使用)
变量的应用范围
 每个变量都有应用范围,那么PHP是怎么定义的呢?还是先看看下面代码吧:
 1 <?php
 2  $var=0;
 3  function test($index)
 4  {
 5      $var=$var+1;
 6      echo “The “.$index.” number is “.$var.”<br>”;
 7  }
 8  test(1);
 9  test(2)
10 ?>你认为以上的代码会显示什么结果呢?
如果你认为是下面:
结果1:
The 1 number is 1
The 2 number is 2不好意思,你的结果是错误的。
其实正确的结果应该是:
结果2
The 1 number is 1
The 2 number is
1那么你从其中发现了什么呢?我们可以知道虽然第2行的代码定义在外面,但第5行的变量和它是不一样的。第5行的变量仅在这个函数里使用。进一步的,如果我想调用第一行的变量而显示结果2.代码可以如下:
 1 <?php
 2  $var=0;
 3  function test($index)
 4  {
 5      global $var;
 6      $var=$var+1;
 7      echo “The “.$index.” number is “.$var.”<br>”;
 8  }
 9  test(1);
10  test(2)
11
?>这个代码段和上面的代码段有何区别呢?注意第5行,多了一个global关键字。明白了吧。
那么还有没有其他方法呢?答案是肯定的。
代码如下:
 1 <?php
 2  $var=0;
 3  function test($index)
 4  {
 5     
 6      $GLOBALS[“var”]=$GLOBALS[“var”]+1;
 7      echo “The “.$index.” number is
“.$GLOBALS[“var”].”<br>”;
 8  }
 9  test(1);
10  test(2)
11 ?>代码有什么特殊的吗?那就是用到了$GLOBALS这个超全局变量。
PHP也有静态变量的说法。不过静态变量一般用在函数里,只能是局部变量了。看看下面代码吧:
 1 <?php
 2 function Test()
 3 {
 4    static $a = 0;
 5    echo $a.”<br>”;
 6    $a++;
 7 }
 8 Test();
 9 Test();
10 ?> 结果为
1
2
PHP还有一个相当令人兴奋的特性:可变变量
所谓可变变量,就是一个变量的变量名可以动态的设置和使用。
463.com,看看下面的例子:
1 <?php
2  $a=”hello”;
3  $hello=”world”;
4  echo $a.” “.$$a;
5 ?>
输出的结果居然是hello,world.太神奇了。$$a其实就是$hello,因为$a的值是hello。
变量就这多了。下面看看常量。

常量
 PHP的常量是不是前面加const呢?让我们看一看。
不是的。在PHP必须用下面的方式定义。
bool define ( string name, mixed value [, bool case_insensitive] )
name
为常量名,value为常量的值。case_insensitive]为大小写敏感。默认为敏感。例如:
 1 <?php
 2 define(“CONSTANT”, “Hello world.”);
 3 echo CONSTANT; // outputs “Hello world.”
 4 echo Constant; // outputs “Constant” and issues a notice.
 5
 6 define(“GREETING”, “Hello you.”, true);
 7 echo GREETING; // outputs “Hello you.”
 8 echo Greeting; // outputs “Hello you.”
 9
10 ?>

常量和变量不同:

常量前面没有美元符号($);

常量只能用 define() 函数定义,而不能通过赋值语句;

相关文章