PHP开始啦--变量作用域,global关键词,static关键词

本文介绍PHP作为服务器端脚本语言的基本概念,包括其功能特性、代码结构、变量管理方式及其作用域规则等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP是运行在服务器端的脚本语言,PHP代码在服务器上执行,以纯HTML结果返回浏览器

PHP作用:

  1. 能够生成动态页面内容
  2. 能够创建,打开,读取,写入,删除以及关闭服务器上的文件
  3. 能够接收表单数据
  4. 能够发送并取回cookies
  5. 能够添加,删除,修改数据库中的数据
  6. 能够限制用户访问网站中的某些页面
  7. 能够对数据进行加密

PHP脚本可放置于文档中的任何位置

PHP脚本以<?php开头,以?>结尾

PHP文件的默认文件扩展名是“.php”

PHP注释:

1.单行注释:

  • //
  • #

2.多行注释:

  • /* ………*/

变量

1.变量命名规则:

  • 变量以$符号开头
  • 以标识符命名规则为准
  • 对大小写敏感

2.PHP不用单独创建变量,变量在首次被赋值时被创建
例.

<?php
 $a="Nico";
 $b=5;
 $c="5";
?>

如上,不用告知PHP变量的数据类型,PHP会根据它的值,自动把变量转换为正确的数据类型

3.显示变量数据类型:var_dump($变量名)

如.

<?php
$x="5";
$y=5;
echo var_dump($x);   //string '5' (length=1)
echo var_dump($y);   //int 5
?>

4.获取当前变量消耗的内存:memory_get_usage($变量名)

如.

<?php
   $x=5;
   echo memory_get_usage($x);   //262144
?>

变量作用域

可以在PHP脚本的任意位置对变量进行声明。
变量的作用域:变量能够被引用/使用的那部分脚本

PHP的三种不同的变量作用域:

  • local局部
  • global全局
  • static静态

local和global作用域

  • 函数之外声明的变量拥有global全局作用域,只能在函数之外进行访问
  • 函数内部声明的变量拥有local局部作用域,只能在函数内部进行访问

例.

<?php
   $x=5; //拥有global全局作用域
   function mTe(){
      $y=10;//拥有local局部作用域
      echo "函数内部变量x是:$x";
      echo "<br>";
      echo "函数内部变量y是:$y";
   }
   mTe();
   echo "<br>";
   echo "函数之外变量x是:$x";
   echo "<br>";
   echo "函数之外变量y是:$y";
?>

运行结果:
这里写图片描述

如上,$x是创建于函数之外的全局变量,拥有global全局作用域;
$y是创建于函数内部的局部变量,//拥有local局部作用域。

故此,在函数内部输出$x和$y这两个变量的值时,$x的值无法输出,可以输出$y的值,因为$y是在函数内部创建的局部变量;
在函数之外输出$x$y这两个变量的值时,$y的值无法输出,可以输出$x的值,因为$x是全局变量

注:可以在不同的函数中创建名称相同的局部变量,因为局部变量只能作用于创建它的函数中

global关键词

作用:在函数内部访问/定义全局变量

例.
在函数内部访问全局变量:

<?php
  $x=5;
  $y=10;

 function mTe(){
    global $x,$y;
     $y=$x+$y;
     /*等效于 $GLOBALS['y']==$GLOBALS['x']+$GLOBALS['y'];*/
     }
mTe();
echo $x."<br>".$y;
?>

运行结果:
这里写图片描述

例.
在函数内部定义全局变量:

<?php
function mTe(){
    global $x;
    $x=123;
    /*以上两句必须分开写,不能合成一句*/
    /*等效于 $GLOBALS['x']=123;*/
}
mTe();
echo $x;   //123
?>

PHP在$GLOBALS[‘全局变量名’]的数组中存储了所有的全局变量。可以在函数内直接访问,也可直接更新全局变量

static关键词

作用:使函数完成/执行后,某个局部变量不被删除。在首次声明变量时使用static关键词

例.

<?php
   function mTe(){
      static $x=10;
      echo $x;
      $x++;
   }
   mTe();  //10
   mTe();  //11
   mTe();  //12
?>

如上, mTe()函数执行完后,局部变量$x本应被删除,但首次声明时使用static关键字,故局部变量$x在函数 mTe()执行完后不会被删除,每当函数被调用时,局部变量$x存储的信息都是函数最后一次被调用时所包含的信息

若首次声明局部变量$x时未使用static关键字,则每次调用函数 mTe()结果均为10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值