php面向对象及tp框架初识,thinkphp面向对象的问题

TP框架分页类里面 一开始的时候我看那里定义了一个私有属性private $url     = '';

我看下面有两个地方用到了这个私有属性

这个私有方法在这个show方法的上面  运行到这个私有方法时 $url这个属性是空的啊 不会报错吗?

private function url($page){

return str_replace(urlencode('[PAGE]'), $page, $this->url);

}

public function show() {

if(0 == $this->totalRows) return '';

$this->parameter[$this->p] = '[PAGE]';

$this->url = U(ACTION_NAME, $this->parameter);

……

回复内容:

TP框架分页类里面 一开始的时候我看那里定义了一个私有属性private $url     = '';

我看下面有两个地方用到了这个私有属性

这个私有方法在这个show方法的上面  运行到这个私有方法时 $url这个属性是空的啊 不会报错吗?

private function url($page){

return str_replace(urlencode('[PAGE]'), $page, $this->url);

}

public function show() {

if(0 == $this->totalRows) return '';

$this->parameter[$this->p] = '[PAGE]';

$this->url = U(ACTION_NAME, $this->parameter);

……

你确定你了解编程吗?

所有的函数存在定义和调用两个过程,你看到的是两个定义的过程。

定义过程中存在的对变量的使用并不是真的就使用了变量,使用变量是在调用的过程中。

所以定义的顺序并不影响变量的值,又何来上面和下面之分。

str_replace 函数的描述上有句:该函数是二进制安全的。

二进制安全,在我理解上来说对输入任何字节都能正确处理, 即使包含零值字节.题主也可以搜下二进制安全这个概念

你的url到底是私有属性还是私有方法?

$this->url这个私有属性在你的show方法里面定义了,不会是空的

这回答都是啥啊。。。晕,是程序员吗?

首先他是类,你调用的也不是静态函数,所以url在创建类实例的时候就初始化了,他就是'',空的字符串,不是没有定义,是定义了但是是空的。所以不会有报错。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值