PHP 变量

变量是用于存储信息的"容器":

 <?php
$x = 5;
$y = 6;
$z = $x + $y;
echo $z;
?>

与代数相似

x=5

y=6

z=x+y

在代数中,我们使用字母(如x),并给它赋值(如5).

从上面的表达数z=x+y,我们可以计算z的值为11.

在PHP中,这些字母被称为变量

PHP变量

与代数相似,可以给PHP变量赋予某个值(x=5)或者表达式(z=x+y).

变量可以是很短的名称(如x和y)或者更具描述性的名称(如age、camame、totalvolume).

PHP变量规则:

  • 变量以$符号开始,后面跟着变量的名称
  • 变量名必须以字母或者下划线字符开始
  • 变量名只能包含字母数字字符以及下划线(A_z、0-9和_)
  • 变量名不能包含空格
  • 变量名是区分大小写的($y和$Y是连个不同的变量)

创建(声明)PHP变量

PHP没有声明变量的命令.

变量在您第一次赋值给它的时候被创建:

 <?php
$txt = "Hello World!";
$x = 5;
$y = 10.5
?>

在上面的语句执行中,变量txt将保存值Hello World!,且变量x将保存值5.
注释:当您赋一个文本值给变量时,请在文本值两侧加上引号.

PHP是一门弱类型语言

在上面的实例中,我们注意到,不必向PHP声明该变量的数据类型.

PHP会根据变量的值,自动把变量转换为正确的数据类型.

在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称.

PHP变量作用域

变量的作用域是脚本中变量可被引用/使用的部分.

PHP有四种不同的变量作用域:

  • local
  • global
  • static
  • parameter

局部和全局作用域

在所有函数定义的变量,拥有全局作用域,除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用global关键字.

在PHP函数内部声明的变量是局部变量,仅能在函数内部访问:

 <?php
$x = 5; //全局变量
function myTest(){
$y = 10; //局部变量
echo "<p>Test variables inside the function:</p>";
echo "Variable x is:$x";
echo "<br>";
echo "Variable y is :$y";
}
myTest();
echo "<p>Test variables outside the function:<p>";
echo "Variable x is: $x";
echo "<br>";
echo "Variable y is: $y";
?>

在以上实例中myTest()函数定义了$x和$y变量.$x变量在函数外声明,所以它是全局变量,$y变量在函数内声明所以它是局部变

量.
当我们调用myTest()函数并输出两个变量的值,函数将会输出局部变量$y的值,但是不能输出$x的值,因为$x变量在函数外定义,无

法在函数内使用,如果要在一个函数中访问一个全局变量,需要使用global关键字.

然后我们在myTest()函数外输出两个变量的值,函数将会输出全局变量$x的值,但是不能输出$y的值,因为$y变量在函数中定义,

属于局部变量.

PHP global关键字

global关键字用于函数内访问全局变量.

在函数中调用函数外定义的全局变量,我们需要在函数中的变量前加上global关键字:

 <?php
$x = 5;
$y = 10;
function myTest(){
global $x,$y;
$y = $x+$y;
}
myTest();
echo $y; //输出15
?>

PHP将所有全局变量存储在一个名为$GLOBALS[index]的数组中.index保存变量的名称.这个数组可以在函数内部访问,也可以直接用来更新全局变量.

上面的实例可以写成这样

 <?php
$x = 5;
$y = 10;
function myTest(){
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y;
?>

 Static作用域

当一个函数完成时,它的所有变量通常都会被删除.然而,有时候您希望某个局部变量不要被删除.

要做到这一点,请在您第一次声明变量时使用static关键字:

 <?php
function myTest(){
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>

然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值.

注释:该变量仍然是函数的局部变量.

参数的作用域

参数是通过调用代码将值传递给函数的局部变量.

参数是在参数列表中声明的,作为函数声明的一部分:

 <?php
function myTest($x){
echo $x;
}
myTest(5);
?>

4.PHP 教程_PHP 变量的更多相关文章

  1. 6.PHP 教程_PHP数据类型

    PHP数据类型 String(字符串),Integer(整型),Float(浮点型),Boolean(布尔型),Array(数组),Object(对象), NULL(空值). PHP字符串 一个字符串 ...

  2. 11.PHP 教程_PHP Switch 语句

    switch 语句用于根据多个不同条件执行不同动作. PHP Switch 语句 如果您希望有选择地执行若干代码块之一,请使用 switch 语句. 语法 switch (n) { case labe ...

  3. 9.PHP 教程_PHP运算符

    PHP 运算符 在 PHP 中,赋值运算符 = 用于给变量赋值. 在 PHP 中,算术运算符 + 用于把值加在一起. PHP 算术运算符 运算符 名称 描述 实例 结果 x + y 加 x 和 y 的 ...

  4. 8.PHP 教程_PHP字符串

    字符串变量用于存储并处理文本. PHP中的字符串变量 字符串变量用于包含有字符的值. 在创建字符串之后,我们就可以对它进行操作了.您可以直接在函数中使用字符串,或者把它存储在变量中. 在下面的实例中, ...

  5. 5.PHP 教程_PHP echo/print

    PHP echo 和 print 语句 echo和print区别: echo-可以输出一个或多个字符串 print-只允许输出一个字符串,返回值总为1 提示:echo输出的速度比print快,echo ...

  6. 1.PHP 教程_PHP 简介

    PHP是服务器端脚本语言. 在学习之前,您需要对以下知识有基本的了解: HTML css PHP是什么? PHP代表PHP:Hypertext Preprocessor PHP是一种使用广泛的开源的脚 ...

  7. 10.PHP 教程_PHP If...Else 语句

    条件语句用于根据不同条件执行不同动作. PHP 条件语句 当您编写代码时,您常常需要为不同的判断执行不同的动作.您可以在代码中使用条件语句来完成此任务. 在 PHP 中,提供了下列条件语句: if 语 ...

  8. 7.PHP 教程_PHP常量

    常量值被定义后,在脚本的其他任何地方都不能被改变. PHP常量 常量是一个简单值的标识符.该值在脚本中不能改变. 一个常量由英文字母.下划线.和数字组成,但数字不能作为首字母出现.(常量名不需要加$修 ...

  9. 3.PHP 教程_PHP 语法

     基础的PHP语法 PHP脚本可以放在文档中的任何位置. PHP脚本以<?php开始,以?>结束: <?php //PHP代码 ?> PHP文件的默认文件扩展名是". ...

随机推荐

  1. javascript编辑器预览模式解密

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. mongodb cpu 超过100%居高不下的原因分析过程

    -- mongodb cpu is high, infomation as below: 1 the message in the http://10.100.1.11:28017/ as below ...

  3. 开源点评:Protocol Buffers介绍

    今天来介绍一下“Protocol Buffers”(下面简称protobuf)这个玩意儿.本来俺在构思“生产者/消费者模式 ”系列的下一个帖子:关于生产者和消费者之间的传输数据格式.因为里面扯到了pr ...

  4. 翻转View

    翻转View by 伍雪颖 CGContextRef context = UIGraphicsGetCurrentContext(); [UIView beginAnimations:nil cont ...

  5. matlab如何保存figure中去掉白边的图片

    输出图片成可直接调入的灰度图,设置输出图片空白边距,以及调整图片大小,纵横比. 一.先显示图片,imshow.如果是plot,或者newplot,直接看“三”.imshow(strain_image, ...

  6. Eclipse\MyEclipse 安装tomcat插件后,还需要配置Tomcat Home

    Eclipse 安装tomcat插件后,配置Tomcat Home的步骤如下: MyEclipse 安装tomcat插件后,配置Tomcat Home的步骤如下:

  7. 善于 调用Windows API

    前一段时间看见别人做的一个自动填写信息并且点击登录的程序,觉得很有意思. 其实就是在程序中调用Windows的API,那么如何调用,下面就做个简单的介绍. 写的简单粗暴, 不喜轻喷. 0.首先引入名称 ...

  8. textContent和innerHtml

    textContent,innerText, 查询或者设置元素的文本内容. textContent如,html: <p>test gogo</p> javascript中: v ...

  9. 大数据之scala基本语法学习

    package edu.snnu.test object list2 { //把字符串转化成一个char类型的list "99 Red Balloons".toList //> ...

  10. python定制类(以Fib类为例)

    class Fib(object): def __init__(self): self.a, self.b = 0, 1 def __iter__(self): return self def __n ...