首先你這邏輯就有問題,子類不繼承父類

創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)鹿寨,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
那么他就是一個(gè)單獨(dú)的
基類
,跟父類沒有關(guān)系,如果想調(diào)用你說的父類里方法
可以在你新的這個(gè)類里使用關(guān)鍵詞
new
實(shí)例化這個(gè)父類對(duì)象
再去調(diào)用里面的方法,當(dāng)然
三個(gè)等級(jí)
你只能使用父類里的公共方法
公共屬性,或者你想要調(diào)用私有private
和受保護(hù)
protected
的方法時(shí)
需要在該類下面使用
魔術(shù)方法
__get();
假設(shè)你系統(tǒng)里數(shù)據(jù)庫(kù)請(qǐng)求的函數(shù)是 pdo_query (你自己根據(jù)情況調(diào)整),表名是tblcate
另外,這段代碼使用到了array_column函數(shù),該函數(shù)從php5.5起才有,如果你的版本較低,要找一個(gè)兼容函數(shù)放到函數(shù)庫(kù)里(官方文檔評(píng)論中就有實(shí)現(xiàn))
以下是代碼文本 如果復(fù)制過去出現(xiàn)T_VARIABLE錯(cuò)誤,就是代碼中字符被系統(tǒng)混掉了,你要重新手打一下
//這里根據(jù)你的意思,應(yīng)該是選出沒有下級(jí)的節(jié)點(diǎn),如果需要全部或其它的,你根據(jù)情況修改,不影響后面的其它操作
$selectedNodes = pdo_query("select * from tblcate where pid not in(select pid from tblcate)");
//選出全部節(jié)點(diǎn)
$allNodes =?pdo_query("select * from?tblcate ");
//將節(jié)點(diǎn)數(shù)據(jù)使用id索引,方便獲取
$allNodes = array_column($allNodes, NULL, 'id');
foreach($selectedNodes as $node){
$tree =?getParentNode($node['pid']);
//這里的$tree 是上級(jí)名稱拼起來的,不包含本級(jí)名稱,如要包含,在后面附加上就行了
$node['tree'] = implode(',',$tree);
}
unset($node);
var_export($selectedNodes?);
function getParentNode($pid){
global $allNodes;
$pnodes=[];
if($pid 0 isset($allNodes[$pid])){
$pNode =?$allNodes[$pid];
$pnodes[]= $pNode['name'];
$rnodes =?getParentNode($pNode['pid']);
if(!empty($rnodes)){
$pnodes = array_merge($pnodes,$rnodes);
}
}
return $pnodes;
}
這種類型的數(shù)據(jù),一般數(shù)據(jù)庫(kù)中,一張表會(huì)有存在兩個(gè)字段,一個(gè)是它本身id,另一個(gè)是它的父級(jí)parent_id。
既然要找到它的祖父級(jí),sql語(yǔ)句這樣寫:
$id = empty($_POST['id'])?'':$_POST['id'];
$parent_id = get_parent_id($id);
$p_p_id = get_parent_id($parent_id);
function get_parent_id($id){
$sql = "select parent_id from ecs_table1 where id=" . $id;
return($GLOBALS['db']-getone($sql ));
}
遞歸,就是根據(jù)現(xiàn)有的id,重復(fù)取。
上面get_parent_id只是獲取父id,當(dāng)然,你可以寫一個(gè)直接獲取祖父id的函數(shù)。
不過,現(xiàn)在大部分php網(wǎng)站,都只會(huì)有獲取父類的函數(shù),想discuz,ecshop等。獲取祖父id,就是不斷的獲取該id的父id。
你的數(shù)據(jù)庫(kù)的字段,和sql查詢的字段怎么對(duì)于不起來
比如兩個(gè)sql語(yǔ)句,都有數(shù)據(jù)庫(kù)沒有的字段
$sql="SELECT * FROM `imdept` where did='$did' LIMIT 1";
$sql_imdept="SELECT pdid,name FROM `imdept`";
did和pdid都沒有
?php?
class?A{?public?$a1='a1';?protected?$a2='a2';?function?test(){?echo?"hello!hr/";?}?}?
class?B?extends?A{//若A類和B類不在同一文件中?請(qǐng)包含后(include)再操作?
public?$a1='b1';?function?test2(){?$this-test();?parent::test();//子類調(diào)用父類方法?}?
function?test()?
{?echo?$this-a1.',';?echo?$this-a2.',';?echo?"b2_test_hellohr/";?}?}?
$a?=?new?B();?$a-test();//b1,a2,b2_test_hello?
$a-test2();//b1,a2,b2_test_hello//hello!?
?
方法的調(diào)用:$this-方法名();如果子類中有該方法則調(diào)用的是子類中的方法,若沒有則是調(diào)用父類中的
parent::則始終調(diào)用的是父類中的方法。
變量的調(diào)用:$this-變量名;如果子類中有該變量則調(diào)用的是子類中的,若沒有則調(diào)用的是父類中的
可以給函數(shù)傳引用,如
//傳引用
function myfunc($c){
$c=$arrray;
}
這樣當(dāng)你調(diào)用 myfunc($obj-a-b-c) 之后, $obj-a-b-c就已經(jīng)等于$arrray了。
文章名稱:獲取父級(jí)數(shù)據(jù)php,js獲取父元素
地址分享:http://chinadenli.net/article33/dseceps.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、品牌網(wǎng)站制作、標(biāo)簽優(yōu)化、外貿(mào)建站、手機(jī)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)