㈠ 請問在php中parent::__construct()有什麼作用
你的 CommonController 已經 繼承了 Controller,
所以 parent::__construct(); 就是執行父類的構造方法。
這么做是因為子類中寫了構造方法會覆蓋父類的構造方法導致父類的構造方法不能自動執行,所以在子類中的構造方法中手動執行父類的構造方法。
㈡ php子類能不能重寫父類的private屬性
在父類中加個public方法,如private$aaa='test';publicfunctiongetAAA(){return$this->aaa;}在子類中調用parent::getAAA();就可以獲得父類私有屬性當然如果你想獲取多個,可以改成動態變數名,getAAA($v){return$this->{$v};}
㈢ php遞歸,這個方法返回的值裡面,child欄位的值為空的,不知道為何,求大神詳解
<?php
$nodeArr=array(
"0"=>Array
(
"id"=>92,
"name"=>"show_page",
"title"=>"測試",
"pid"=>13
),
"1"=>Array
(
"id"=>13,
"name"=>"iguess",
"title"=>"根目錄",
"pid"=>0
)
);
functionnode_merge($node,$pid=0){
$arr=array();
foreach($nodeas$key=>$v){
if($v['pid']==$pid){
$v['child']=node_merge($node,$v['id']);
$arr[]=$v;
}
}
return$arr;
}
$testArr=node_merge($nodeArr);
var_mp($testArr);
?>
列印的結果
㈣ thinkphp中parent::_initialize();的作用是什麼
相當於自定義的構造函數
㈤ php中, @parent::__construct( $db_host, $db_user, $db_password, $db_name ); @這個符號是什麼意思
隱藏錯誤, 出錯不顯示在頁面上
㈥ php用this調用父類方法與parent調用父類方法有什麼區別
你的理解有誤,this是一個偽變數。只能在本類中使用,this如果調用的是父類中相同的方法
例如
class Person {
function say() {
echo '你好';
}
}
class Boy extends Person {
function say() {
$this->say(); //這樣還是調用了Boy類實例化對象的方法say,無限遞歸,死循環了
}
}
$obj = new Boy(); //實例化Boy類,$this才存在,不然的話,就是未定義的
$this->say();要換成parent::say();就是調用父類的方法
㈦ php怎麼理解這些個關鍵字啊,public;private;protect;final;static;const;我感覺這
public: 公有屬性或方法
在子類中可以通過self::var 或self::method 來調用,可以通過parent::method來調用父類中的方法,但不能調用公有屬性.
在實例中可以通過$obj->var或self::method 來調用
protected: 受保護類型
在子類中可以通過self::var 或self::method調用,可以通過parent::method來調用父類中的方法
在實例中不能通過$obj->var 來調用 protected類型的方法或屬性
private: 私有類型
該類型的屬性或方法只能在該類中使用,在該類的實例、子類中、子類的實例中都不能調用私有類型的屬性和方法
再來說說final
1.final不能用來修飾成員屬性
2.final只能修飾類和方法
作用:被修飾的類不能被子類所繼承;被修飾的方法不能被子類的方法覆蓋。
然後來說說static
1.static用來修飾成員屬性和成員方法,但不能用來修飾類
2.用static修飾的成員屬性可以被同一個類的所有對象共享
3.靜態的數據是存在 內存中的 數據段中(初始化靜態段)
4.靜態的數據是在類在第一次載入時,分配到內存中的
5.什麼是類被載入?只要在程序中使用到這個類(有這個類名出現)
6.靜態的成員屬性都要用類名去訪問,不用創建對象,不用對象去訪問;在類里邊可以用self代表本類($this)
7.靜態方法,不能訪問非靜態的成員屬性(但是,在非靜態方法卻能訪問靜態的成員屬性),非靜態的成員屬性,必須用對象訪問,在內部訪問非靜態成員屬性,用$this.
8.如果你確定一個方法中不需使用到非靜態的成員屬性,則可以將這個方法聲明為靜態方法,不需實例化對象,就可以訪問
最後來說說const
1.它只能用來修飾成員屬性
2.在類中聲明常量必須使用const
3.訪問方式和訪問靜態成員屬性一樣(類外使用 類名::成員屬性,類里邊則使用self::成員屬性)
4.常量一定要在聲明的時候就給初始值
㈧ php遞歸生成樹型數組
public function tree(&$list, $parent) {
//保證找到的元素都放在一個數組$tree內,應該是$tree在所有的tree函數都共享
static $tree;
//遍歷該數組,找到parent值為當前傳遞進來的$parent_id;
foreach($list as $row) {
//判斷
if($row['parent'] == $parent) {
//保存起來
$tree[] = $row;
//依據當前所找到的分類,找到其子節點,操作相同,遞歸完成
$this->tree($list, $row['id']);
}
}
return $tree;
}
你把你的數組帶進去,這個是在類裡面實現的,如果你只是想單獨用個方法,你就把public以及'$this->'去掉就行了
㈨ php中parent::__construct()是什麼意思
調用父類的構造函數:
class A {
public $name; //名字
function __construct($name){ //構造函數
$this->name = $name;
}
function test(){
echo $this->name;
}
}
//派生類
class B extends A{
function __construct(){
parent::__construct("測試"); //調用或者說繼承父類的構造函數:
self::test();
}
}
$b = new B();
㈩ php中,調用父類的構造函數一定要用parent:__construct()嗎用this->__construct()行嗎
子類 還用調用父類的 構造函數?如果沒有參數 實例化子類 就可以 了 還有 繼承過來 的 肯定用parent了