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

Home\Common\Map.class.php文件

namespace Home\Common;

class Map {

static function getName() {

$map = array(

'0' => '张三',

'1' => '李四',

'2' => '王五',

'3' => '赵六'

);

return $map;

}

}

Home\Controller\IndexController.class.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出错,显示:

b2cc428a64bd?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

写法2显示:

b2cc428a64bd?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

如果想私有变量赋值,可以构造函数赋值,即在__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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值