关于PHP类继承的问题
我现在自己编写了一个两个继承关系的类,父类实例化后子类不知道怎么调用父类已经实例后存储的变量
先把代码粘在下面:
Class Identification{ //Identification函数将name与code联系起来 public function Identification() { //连接到InfoModel $DB_Info = M('Info'); $condition->Name = $this->name; return $this->code = $DB_Info->where($condition)->getfield('Code'); } public $name; protected $code;}Class PT_Info extends Identification{ public function get_BloodTest() { $DB_BloodTest = M('Bloodtest'); $condition->Code = $this->code; echo "This is Code:".$this->code; $this->Info_BT_WBC = $DB_BloodTest->where($condition)->getfield('WBC'); echo "This is WBC:".$this->Info_BT_WBC; $this->Info_BT_NEPer = $DB_BloodTest->where($condition)->getfield('NEPer'); echo "This is NE%:".$this->Info_BT_NEPer; $this->Info_BT_LYPer = $DB_BloodTest->where($condition)->getfield('LY%'); echo "This is LY%:".$this->Info_BT_LYPer; $this->Info_BT_MOPer = $DB_BloodTest->where($condition)->getfield('MO%'); echo "This is MO%:".$this->Info_BT_MOPer; } public $Info_BT_WBC; public $Info_BT_NEPer; public $Info_BT_LYPer; public $Info_BT_MOPer;}public function tclass() { $neal = new Identification(); $neal->name = 'Neal'; $code = $neal->Identification(); $this->assign('name',$neal->name); $this->assign('code',$code); $neal_BT = new PT_Info(); $neal_BT->get_BloodTest(); $this->assign('Info_BT_WBC',$neal_BT->Info_BT_WBC); $this->assign('Info_BT_NEPer',$neal_BT->Info_BT_NEPer); $this->assign('Info_BT_LYPer',$neal_BT->Info_BT_LYPer); $this->assign('Info_BT_MOPer',$neal_BT->Info_BT_MOPer); $this->display(); }
如上面代码:我把Identification类实例化为neal后存储了一个变量$code,之后实例化其子类PT_Info为neal_BT,此时需要调用已经存储在neal中的$code变量值(详见PT_Info类里的函数用法)
我不想在PT_Info类里面再单独存一个$code变量,想借用继承关系,毕竟往后还有很多类似的结构,那样写的话整体会很乱
话句话说我先在实例化的子类要调用一个实例化的父类里的变量,这两个类在定义是有继承关系,可是实例化后我不知道怎么告诉编译器这两个类(neal和neal_BT)之间存在继承关系
注:我整个项目使用ThinkPHP框架写的,所以有的函数(比如‘M’方法)并非PHP默认的写法
跪求大神帮忙解答!!!
回复讨论(解决方案)
你的概念出问题了
Class PT_Info extends Identification 后
PT_Info 和 Identification 就是两个独立的类了,虽然 PT_Info 继承了 Identification 一些东西
这就和 你 不是 你父亲 是一个道理
Class Identification
{
public function Identification()
你在 Identification 定义了 Identification 方法,这就是构造函数了(据说 php7 取消了这个 C++ 来的特征)
那么,你在实例化 PT_Info 时,这个 Identification 方法就会自动被执行 code 属性就已经有值了
注意:构造函数是没有返回值的(写了也没用)
因此 tclass 方法中的 $neal = new Identification(); 是没有意义的
后面还有 $neal_BT = new PT_Info();
就是说 $DB_Info->where($condition)->getfield('Code'); 被执行了两次,多了一次无用功
你的概念出问题了
Class PT_Info extends Identification 后
PT_Info 和 Identification 就是两个独立的类了,虽然 PT_Info 继承了 Identification 一些东西
这就和 你 不是 你父亲 是一个道理
Class Identification
{
public function Identification()
你在 Identification 定义了 Identification 方法,这就是构造函数了(据说 php7 取消了这个 C++ 来的特征)
那么,你在实例化 PT_Info 时,这个 Identification 方法就会自动被执行 code 属性就已经有值了
注意:构造函数是没有返回值的(写了也没用)
因此 tclass 方法中的 $neal = new Identification(); 是没有意义的
后面还有 $neal_BT = new PT_Info();
就是说 $DB_Info->where($condition)->getfield('Code'); 被执行了两次,多了一次无用功
太感谢啦!!的确是我自己理解上的问题,您这个解释太及时了多谢多谢!!!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在PHP中,應使用password_hash和password_verify函數實現安全的密碼哈希處理,不應使用MD5或SHA1。1)password_hash生成包含鹽值的哈希,增強安全性。 2)password_verify驗證密碼,通過比較哈希值確保安全。 3)MD5和SHA1易受攻擊且缺乏鹽值,不適合現代密碼安全。

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP中使用預處理語句和PDO可以有效防範SQL注入攻擊。 1)使用PDO連接數據庫並設置錯誤模式。 2)通過prepare方法創建預處理語句,使用佔位符和execute方法傳遞數據。 3)處理查詢結果並確保代碼的安全性和性能。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。
