美文网首页初见
ThinkPHP遇到的类私有变量赋值问题

ThinkPHP遇到的类私有变量赋值问题

作者: huayileng | 来源:发表于2019-02-20 19:11 被阅读0次

Home\Common\Map.class.php文件

<?php

namespace Home\Common;

class Map {

    static function getName() {

        $map = array(

            '0' => '张三',

            '1' => '李四',

            '2' => '王五',

            '3' => '赵六'

        );

        return $map;

    }

}

Home\Controller\IndexController.class.php文件

<?php

namespace Home\Controller;

use Think\Controller;

use Home\Common\Map as map;

class IndexController extends Controller {

    private $sex = array(0,1);

    private $name = map::getName();  // 写法1

    // 测试 静态函数 类私有变量赋值

    public function getName() {

        $name = map::getName();        // 写法2

        var_dump($name);

    }

}

其中,写法1出错,显示:

写法2显示:

如果想私有变量赋值,可以构造函数赋值,即在__construct()里赋值:

$this->name = map::getName();    // 注意千万别写成$this->$name

类的变量成员叫做“属性”,或者叫“字段”、“特征”。属性声明是由关键字 publicprotected 或者 private 开头,然后跟一个普通的变量声明来组成。属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指 PHP 脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值。

在类的成员方法里面,可以用 ->(对象运算符):$this->property(其中 property 是该属性名)这种方式来访问非静态属性静态属性则是用 ::(双冒号):self::$property 来访问。

当一个方法在类定义内部被调用时,有一个可用的伪变量 $this。$this 是一个到主叫对象的引用(通常是该方法所从属的对象,但如果是从第二个对象静态调用时也可能是另一个对象)。

具体请参考:http://php.net/manual/zh/language.oop5.properties.php

相关文章

  • ThinkPHP遇到的类私有变量赋值问题

    Home\Common\Map.class.php文件

  • iOS开发的一些小Tips

    用object_setIvar()给类的私有变量赋值@interface TestViewController (...

  • java 静态 new 对象

    一般情况下: Java中赋值顺序:父类的静态变量赋值自身的静态变量赋值父类成员变量赋值和父类块赋值父类构造函数赋值...

  • 本地通知

    本地通知: kvc(键值编码)优点:可以给类的任意实例变量赋值,即使实例变量是私有的 缺点:必须要知道实例变量名,...

  • JS 函数

    执行步骤 形成一个私有作用域 形参赋值 变量提升,私有作用域中已经有的变量则不会进行提升 代码执行 栈内存释放问题...

  • 2020-01-03培训

    函数 python变量没有声明变量,赋值与声明都是同一个语句可在函数里声明 密码加密 1.工具类公共工具类私有工具...

  • KVO 与 kvc

    1.给私有的成员变量赋值(当然公有的也可以) 比如一个类有一个私有成员变量(在.m文件中),用KVC的方式然后可以...

  • 2020-03-30 自定义枚举和异常问题

    自定义枚举类问题 对于枚举常量的定义,枚举类中的私有变量(对应关系),一般对于私有变量只有get方法,此外就是构造...

  • clean code读书笔记(三)

    一、类 类从变量开始,公共静态常量-->私有静态变量-->私有实体变量,公共函数应跟在变量列表之后。 类要短小,职...

  • 2018-06-28 python 类的私有变量和私有方法

    转发python 类的私有变量和私有方法 类的私有变量和私有方法在Python中可以通过在属性变量名前加上双下划线...

网友评论

    本文标题:ThinkPHP遇到的类私有变量赋值问题

    本文链接:https://www.haomeiwen.com/subject/roscyqtx.html