精华内容
下载资源
问答
  • php中变量初始化和赋值方法发布时间:2020-05-21 23:07:12来源:亿速云阅读:125作者:鸽子什么是变量通俗的来说变量是一种容器。根据变量类型不同,容器的大小不一样,自然能存放的数据大小也不相同。在变量中存放...

    php中变量初始化和赋值方法

    发布时间:2020-05-21 23:07:12

    来源:亿速云

    阅读:125

    作者:鸽子

    什么是变量

    通俗的来说变量是一种容器。根据变量类型不同,容器的大小不一样,自然能存放的数据大小也不相同。在变量中存放的数据,我们称之为变量值。

    PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。在PHP中变量的命名规则通常是以字母或下划线开头,由字母、数字、下划线组成。变量名通常由声明变量所代表意义的英文单词组成。单词与单词之间通过_分隔,或者第一个单词首字母小写,之后每个单词首字母大写。

    这种命名方式我们称之为驼峰命名法。良好的命名规范有助于提高我们代码的可读性。

    例如:<?php

    $name = '屋脊猫';

    $_age = 1;

    $sex = '男';

    echo "姓名:{$name},年龄:{$_age}, 性别:{$sex}";

    $1sex = '男'; // 错误,不能以数字开头

    ?>

    变量的初始化

    变量的初始化是给变量设置一个默认值(或者是需要的值),初始化的过程中PHP会给变量分配存储空间以及将变量值所在存储空间地址保存在变量中。<?php

    $a = 1; // 初始化一个整形变量

    ?>

    虽然在PHP中不需要初始化变量,但对变量进行初始化是个好习惯。未初始化的变量具有其类型的默认值

    ● 布尔类型的变量默认值是 FALSE

    ● 整形和浮点型变量默认值是零

    ● 字符串型变量(例如用于 echo 中)默认值是空字符串

    ● 数组变量的默认值是空数组

    使用未初始化的变量会发出 E_NOTICE错误,但是在向一个未初始化的数组附加单元时不会。

    依赖未初始化的变量的默认值在某些情况下会有问题,比如在之后的编码中我们需要经常的将一个文件通过include包含到当前文件,如果两个文件中有相同的变量名,此时的变量值则不是我们需要的默认值了。另外在PHP 5.4.0之前的版本中把 register_globals打开是一个主要的安全隐患。在PHP 5.4.0之后该配置已被移除。

    变量的赋值方式

    在PHP中有两种传值方式,分别为传值赋值和引用赋值。

    1、传值赋值

    传值赋值是PHP中默认的传值方式。那也就是说,当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋值到目标变量。这意味着,当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。如:<?php

    $var1 = 1;

    $var2 = $var1;

    $var1 = 3;

    echo $var1; // 3

    echo $var2; // 1

    ?>

    2、引用赋值

    引用赋值意味着新的变量简单的引用了原始的变量,改变了新的变量的值将影响到原始的变量的值,反之亦然。使用引用赋值,只需简单地将一个 & 符号加到将要赋值的变量前(源变量)如:<?php

    $oldVar = 1;

    $newVar = &$oldVar;

    $newVar = 2;

    echo $oldVar; // 2

    echo $newVar; // 2

    ?>

    &符在C语言中称之为取地址符,变量保存了变量值在内存中的存储地址,通过取地址符可以将一个变量保存的变量值的地址赋值给另一个变量。两个变量的值指向了同一个内存地址,所以当我们修改其中一个变量的值时,另一个变量的值自然而然的随之被改变。

    有一点重要事项必须指出,那就是只有有名字的变量才可以引用赋值。<?php

    $foo = 25;

    $bar = &$foo; // 合法的赋值

    $bar = &(24 * 7); // 非法; 引用没有名字的表达式

    ?>

    在(24*7)这个表达式中因为没有保存在变量中,所以没有明确的内存地址,通过取地址符去获取在内存中存储的地址是不可取的。

    展开全文
  • C++ VS中如何变量初始化数组

    千次阅读 2017-07-29 09:04:06
    也许在别的编译软件中定义一个const int 的变量就可以初始化数组,但我的VS2013中总报错,于是我用的方法是Vector 1.头文件 #include 2.设置变量 int a,b,length;  cin>>a;  

    也许在别的编译软件中定义一个const int 的变量就可以初始化数组,但我的VS2013中总报错,于是我用的方法是Vector

    1.头文件                 #include<vector.h>


    2.设置变量             int a,b,length;

                                    cin>>a;

                                    cin>>b;

                                     length=a*b;

                           

    3.定义vector数组 :vector <double> array(length);//表示定义了一个长度是[length]的array数组


    编译就可以通过

    展开全文
  • C++ 变量初始化规则

    2016-08-24 11:32:00
    系统如何初始化取决于变量的类型以及变量定义的位置。    内置类型变量是否自动初始化取决于变量定义的位置。函数体外定义的变量初始成0;函数体内定义的变量不进行自动初始化。除了用作赋值操作的左操作数,...

       定义没有初始化式的变量时,系统有时候会帮我们初始化变量。系统如何初始化取决于变量的类型以及变量定义的位置

       

       内置类型变量是否自动初始化取决于变量定义的位置。函数体外定义的变量初始成0;函数体内定义的变量不进行自动初始化。除了用作赋值操作的左操作数,其他任何使用未初始化变量的行为都是未定义的,不要依赖未定义行为。

    以int类型为例,一段简单的测试代码:

    #include <iostream>
    using namespace std;
    
    int a;
    
    int main()
    {
        int b;
    
        cout << a << endl;
        cout << b << endl;
    
        return 0;
    }
    View Code

      在VS执行这段代码,输出变量a的值0,同时VS会报错:Run-Time Check Failure #3 — The variable 'b' is being used without being initialized。 变量a被自动初始化为0;变量b未被自动初始化。

     

      类类型变量在定义时,如果没有提供初始化式,则会自动调用默认构造函数进行初始化(不论变量在哪里定义)。如果某类型没有默认构造函数,则定义该类型对象时必须提供显示初始化式。

    一段简单的测试代码(默认构造函数由编译器自动生成):

    #include <iostream>
    using namespace std;
    
    class testA
    {
        public:
            void printf() const
            {
                cout << data << endl;
            }
        private:
            int data;
    };
    
    testA a;
    
    int main()
    {
        testA b;
        
        a.printf();
        b.printf();
    
        return 0;
    }
    View Code

      在VS执行这段代码,得到以下结果:

      编译器自动生成的默认构造函数使用与变量初始化相同的规则来初始化数据成员。对象a在函数体外定义,其int类型数据成员被初始为0;对象b在函数体内定义,合成默认构造函数不会对其进行初始化(符合内置类型变量初始化规则),其中存放的都是随机值。同样,如果数据成员是类类型,则会调用相应的默认构造函数对数据成员进行初始化。

      如果稍微改变一下这个类的定义,定义一个构造函数以阻止编译器自动生成默认构造函数:

    #include <iostream>
    using namespace std;
    
    class testA
    {
        public:
            testA(int a)
            {
                data = a;
            }
    
            void printf() const
            {
                cout << data << endl;
            }
        private:
            int data;
    };
    
    testA a;
    
    int main()
    {
        testA b;
        
        a.printf();
        b.printf();
    
        return 0;
    }
    View Code

      这段代码无法通过编译:error C2512: “testA”: 没有合适的默认构造函数可用。

         

      定义数组时,如果没有显示提供初始化列表,则数组元素的自动化初始规则同普通变量一样:函数体外定义的内置类型数组,其元素初始为0;函数体内定义的内置类型数组,其元素无初始化;类类型数组无论在哪里定义,皆调用默认构造函数进行初始化,无默认构造函数则必须提供显示初始化列表。

      如果定义数组时,仅提供了部分元素的初始列表,其剩下的数组元素,若是类类型则调用默认构造函数进行初始,若是内置类型则初始为0(不论数组定义位置)。

     

      对于动态分配的数组,如果数组元素是内置类型,其元素无初始化;如果数组元素是类类型,依然调用默认构造函数进行初始化。也可以在使用跟在数组长度后面的一对空圆括号对数组元素做值初始化

      例如: int *ptrA = new int[10];

          int *ptrB = new int[10] ();

      其中ptrA指向的动态数组其元素未初始化,而ptrB指向的动态数组元素被初始化为0。

      

      对于动态分配的单个对象,可使用直接初始化的语法规则在定义时显示初始化。如果不提供显示初始化式,动态创建的对象与在函数内部定义的变量初始化方式相同(即:内置类型无初始化,类类型调用默认构造函数进行初始化)

      

     

    转载于:https://www.cnblogs.com/FoxShark/p/5802239.html

    展开全文
  • c++成员变量初始化

    2021-03-26 16:49:20
    当成员变量也是一个类对象时,如何初始化? class b{ public: b (int i) {m_i=i;}; // class b只有一个带参数的构造函数 private: int m_i; }; class a{ public: a () :m_b(1) // 因为b没有默认构造函数,所以...

    当成员变量也是一个类对象时,如何初始化?

    class b{
    public:
    	b (int i) {m_i=i;}; // class b只有一个带参数的构造函数
    private:
    	int m_i;
    };
    class a{
    public:
    	a ()
    	:m_b(1) // 因为b没有默认构造函数,所以必须在初始化表中初始化
    	{
    	};
    	b m_b;
    };
    

    可以在初始化表中初始化
    对于普通变量,c++11之后可以直接在声明成员变量时初始化,

    class A{
    public:
         int x=1;
         string s="qweqetfqw";
         vector<int>p { 0};
    };
    
    展开全文
  • 在定义模板类后,会面临如何对模板数据成员变量进行初始化,对于用途十分明确的模板类,可以根据用途直接定义初始化的类型。但对于通用模板类,成员变量的类型可能是基本类型,也可能是复合类型,所以需要使用通用的...
  • 本问题讨论变量初始化,所以先来看一下Java中有哪些种类的变量。 类的属性,或者叫值域方法里的局部变量方法的参数 对于第一种变量,Java虚拟机会自动进行初始化。如果给出了初始值,则初始化为该初始值。...
  • unity ComputeShader里结构体变量初始化如何不用分支判断 init 是一个int 类型 在跑完第一帧之后会被设置成其他值 现在想求助各位大神 如何在不使用标志位的情况下初始化这个结构体里的成员变量 dataBuffer[f].pos...
  • C++成员变量初始化

    2013-06-26 13:21:55
    上述成员变量如何初始化,注意不是赋值。 由于普通成员变量和常量成员变量,每一个类实例化,都一份内存拷贝。C++规定成员变量在声明(注意声明与定义区别)时,不允许初始化,因此这些变量只能放在构造函数初始...
  • 原文链接:一致性初始化、初值列(initializer_list)、成员变量初始化方式 一、列表初始化/一致性初始化 设计的目的: 在C++11之前,如何初始化一个变量或对象的概念比较混淆。初始化的场景可以发生在:小括号...
  • 静态类变量和实例类变量初始化过程是否相同,分别是如何初始化的呢?这篇文章就是让你能够彻底理解这些问题的。 Java虚拟机如何把编译好的.class文件加载到虚拟机里面?加载之后如何初始化类?静态类变量和...
  • 我有这个代码:private static $dates = array('start' => mktime( 0, 0, 0, 7, 30, 2009), // Start date'end' => mktime( 0, 0, 0, 8, 2, 2009), // End date'close' => mktime(23, 59, 59, 7, 20, ...
  • 1. 引言 在一个的 java 程序中,为了保证程序的健壮性,在初始化一个对象之前, 应该保证...在类中,变量定义位置的先后会影响到它们的加载顺序,但是,无论如何,它们都会在构造方法执行之前进行初始化,我们来看...
  • Java 变量到底要如何初始化

    千次阅读 2016-05-31 06:32:16
    本问题讨论变量初始化,所以先来看一下Java中有哪些种类的变量。 类的属性,或者叫值域方法里的局部变量方法的参数 对于第一种变量,Java虚拟机会自动进行初始化。如果给出了初始值,则初始化为该初始值。...
  • C++类中成员变量初始化

    千次阅读 2014-05-06 10:18:12
    上述成员变量如何初始化,注意不是赋值。 由于普通成员变量和常量成员变量,每一个类实例化,都一份内存拷贝。C++规定成员变量在声明(注意声明与定义区别)时,不允许初始化,因此这些变量只能放在构造函数初始...
  • ... <pre><code>if(!empty($_FILES['file']['tmp_name'])){ $caminho = $_FILES['file']['tmp_name'];... $data = new Spreadsheet_Excel_Reader();... $conn = mysqli_connect("localhost","root","","pessoas");...
  • @Component public class QiniuConfig { @Value("${qiniu.accessKey}") private String accessKey; @Value("${qiniu.secretKey}") ...这不是静态变量很简单按照上面的方式就可以从配置文件中获取值,.
  • 变量如何初始化,才能更有效率?通过查看vc、gcc编译器的反汇编代码查看不同方法初始化的效率区别。其中cl的版本分别是Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86,gcc的版本是...
  • 如何初始化指针变量

    千次阅读 2019-06-09 10:10:36
    https://jingyan.baidu.com/article/915fc4145d045b51394b201f.html
  • 静态局部量xor eax,eax // 将eax清零mov al,mem //mem用于标记静态变量是否被被初始化,初始化为1,未初始化为0and eax,1 // 与 1 操作test eax,eaxjnz XXXX //XXXX的地方表示跳过初始化 mov cl,mem or cl,1 // 或 1...
  • 静态变量,成员变量初始化顺序分析前言类加载初始化和实例对象初始化静态变量和成员变量区别变量加载顺序静态变量和成员变量加载顺序父类和子类变量加载顺序引用类加载顺序数组引用类加载顺序总结 前言 Core Java...
  • 转载自:https://www.cnblogs.com/wanghui-garcia/p/11278345.html,...#初始化输入的变量,torch.empty是返回一个包含未初始化数据的张量 self.input=torch.empty(size=(self.opt.batchsize,3,self.opt.isize,sel...
  • public class DatabaseHandler extends SQLiteOpenHelper { // All Static variables // Database Version ...提示说的是局部变量TABLE_LOCATIONLABLES可能没有被初始化?可是我初始化了的呀,这个错误如何发生的呢?
  • STL编程之--静态变量初始化方法

    千次阅读 2013-09-27 16:16:10
    静态变量在STL模板编程中,总是让新手摸不着头脑,STL奇奇怪怪的语法再加上初始化的特定...在普通类中定义的静态变量初始化。 2. 在STL模板中定义的静态变量初始化。下面将分别说明在这两种情况下,应该如何正确的初
  • 一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备。...如何设置非初始化数据变量不被零初始化,这是本篇文章所要探讨的。
  • 成员变量必须在构造函数的初始化列表中完成初始化。Smart pointer members minimize dependencies while allowing exceptiON safety。  通过以指针存储成员变量的方法化依赖  当成员变量的头文件非常大或者非常...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,209
精华内容 1,683
关键字:

如何变量初始化