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

ThinkPHP遇到的类私有变量赋值问题,第1张

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

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

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

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

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

public function __construct($name,$age,$avirdupois,$sex,$height){//定义个构造 构架是起到什么作用的

构造函数就是当你new一个对象的时候自动执行的

$this->name=$name//继承了父类为什么这里还要调用成员变量

你new zilei("李亚","165")执行子类的构造函数,构造函数中给父类的成员变量赋值,并不执行父类的构造方法,要执行的话就要在子类中加parent::__construct


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7334658.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存