当前位置:首页>软件介绍>PHP变量基本语法 查询:
     
PHP变量基本语法

        PHP变量用于存储字符、数字、数组甚至对象内容等,以便在我们需要的地方使用。 定义一个变量的语法: 

        $变量名 = 值; 

        使用变量的例子: 

        代码如下 复制代码 

        <?php 

        $var_char = "你好~"; 

        echo $var_char; 

        ?> 

        执行这段代码输出的结果是: 

        1 你好~ 

        从这个例子可以看出,变量名以 $ 开始,标明这是一个变量。变量名以字母(a-z、A-Z)或者下划线 _ 开始,后面可以跟任意字母或数字以及下划线,但不能是空格。 如下这些变量名是有效的: 

        $var_char 

        $varChar 

        $_varChar 

        $var_char5 

        提示 

        关于变量命名,我们建议变量名以标明其实际语意的组合为佳,如 $my_name 或 $myName 格式。 

        全局变量global 

        全局变量便是其中之一,当然这个观点颇具争议,有许多人还是建议禁用全局变量,使用不当对造成程序的可读性很差!结构混乱,调试更是一头雾水,但是不可否认他的便捷,这便是php为什么会用全局变量global原因吧!„ 

        今天就遇到了php 全局变量不起作用的问题. 

        先上一段简单的代码: 

        代码如下 复制代码 

        <?php 

        $a = 0 ; 

        function Test() 

        { 

        $a =1; 

        } 

        Test(); 

        echo $a; 

        ?> 

        上面的代码中输出是0,那是因为函数体Test内$a变量被缺省设置为局部变量,$a的作用域就是在Test内.修改代码如下 

        代码如下 复制代码 

        <?php 

        $a = 0 ; 

        function Test() 

        { 

        global $a;//申明函数体Test内使用的$a变量为global全局变量 

        $a =1; 

        } 

        Test(); 

        echo $a; 

        ?> 

        申明函数体Test内使用的$a变量为global全局变量后,使得$a的作用全局,所以输出为1. 上面的实例只是基本的global全局变量知识,下面我们看看复杂点的: 代码如下 复制代码 

        //A.php 文件 

        <?php 

        function Test_Global() 

        { 

        include 'B.php'; 

        Test(); 

        } 

        $a = 0 ; 

        Test_Global(); 

        echo $a; 

        ?> 

        //B.php 文件 

        <?php 

        function Test() 

        { 

        global $a;//申明函数体Sum内使用的$a变量为global全局变量 

        $a =1; 

        } 

        ?> 

        为什么输出的却是0? 

        在用户自定义函数中,一个局部函数范围将被引入。任何用于函数内部的变量按缺省情况将被限制在局部函数范围内(包括include 和 require 导入的文件内的变量)! 

        解释:A.php文件的内Test_Global是定义好的第三方函数,该函数用include导入了B.php文件内的$a的global全局变量,所以$a被限制在Test_Global局部函数范围内,所以B.php文件内的$a的作用范围都在Test_Global内,而不是作用了整个A.php内. 

        解决方案: 

        1. 冲出局部函数//A.php 文件 

        代码如下 复制代码 

        <?php 

        function Test_Global() 

        { 

        Test(); 

        } 

        include 'B.php'; //将include 从局部Test_Global函数中移出 $a = 0 ; 

        Test_Global(); 

        echo $a; 

        ?> 

        //B.php 文件 

        <?php 

        function Test() 

        { 

        global $a; 

        $a =1; 

        } 

        ?> 

        2.优秀的访问器 

        代码如下 复制代码 //A.php 文件 

        <?php 

        include 'B.php'; 

        $a =0; 

        Set_Global($a); 

        echo $a; 

        ?> 

        //B.php 文件 

        <?php 

        function Set_Global(&$var) 

        { 

        $var=1; 

        } 

        ?> 

        php变量 引用函数 static变量无论怎样声明变量(按值或按引用),总之在PHP脚本的任何位置都可以声明变量。但是,声明的位置会大大影响访问变量的范围。这个可访问的范围称为作用域(scope)” –PHP与MySQL程序设计在了解php变量之前,我们先看看段式内存管理架构的内存段的划分。通常操作系统会将物理内存划分为以下几个逻辑段。 

        Text-Segment,这个段最大的特点就是只读。一般存放可执行代码,也有可能常量也存放在这里,比如字符串常量 

        BSS-Segment,这里存放了那些没有初始化的变量。某种意义来讲,没有初始化的变量都是垃圾,不可用 

        Data-Segment,这里存放了全局变量和静态变量,直到脚本运行结束,操作系统才会回收这里的内存空间,变量亦会被销毁。 

        Stack-Heap Segment 函数参数与本地变量(也称局部变量)存放在堆中(stack),还有返回值等等。用完了,操作系统就会回收这部分内存空间。对于C程序员而言,可以自行从栈中(heap)申请内存空间,用完了,也需要自己手动释放。 

        作为PHP程序言而言,我们关心的是全局变量、静态变量、局部变量、函数参数以及函数返回值。局部变量和函数参数基本上一样,在初始化的时候分配内存空间,退出函数后操作系统会回收内存空间。而全局变量与静态变量要直php脚本运行结束后,内存空间才会被释放。与全局变量不同的时,所有静态变量在程序执行之前就初始化并且分配了内存空间。 注: 

        1.函数外部声明静态变量意义不大,函数内部声明静态变量受限于作用域,函数外部不能修改函数内部静态变量。 

        2.引用变量,也是变量,只不过它的值是变量的内存地址。

        


MySQL个人学习笔记MySQL排序语句
MySQL入门篇MySQL缓存技术
MySQL管理器Windows下安装MySQL图解
MySQLl数据库文档MySQL触发器
自学MySQL笔记PHP培训常用的PHP工具
对服务器端特性配置来加强php的安全学习php前景知多少
PHP开发入门PHP好学吗参加PHP培训需要学多久
人们对PHP的误解有哪些php内置函数实例教程
信息发布:广州名易软件有限公司 http://www.myidp.net
  • 名易软件销售服务
  • 名易软件销售服务
  • 名易软件技术服务

  • PHP变量基本语法