thinkphp物件導向的問題

來源:互聯網
上載者:User
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在建立類執行個體的時候就初始化了,他就是'',空的字串,不是沒有定義,是定義了但是是空的。所以不會有報錯。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.