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