當前位置:首頁 » 編程語言 » phpclass使用

phpclass使用

發布時間: 2025-04-10 18:21:04

php類Class詳解

php類Class詳解
class 類定義成員變數方法有三種: 1、私有變數或方法定義關鍵字 private 變數名 private 方法(){} 2、公有變數或方法定義關鍵字 public 變數名 public 方法(){} 3、受保護的變數或方法定義關鍵字 protected 變數 protected 方法(){}
面向對象方式類細節:

如果一個類中含有抽象方法,必須將抽象方法的所在的類聲明成抽象類 如果一個類繼承某個抽象類,則它自己必須聲明一個抽象類,或者實現一個從A類繼承的抽象方法 介面 1、介面的使用基本語法 interface 介面名{ //屬性 //方法 } 介面的方法都不能有方法體 2、如何去實現介面基本語法,一個類可以使用N多個介面 class 類名 implements 介面名1,介面名2{ } 介面的作用就是,聲明一些方法,讓 其他類來實現,介面還體現編程中我們希望的效果,高內聚低偶合 1、介面可以繼承多個介面 2、當一個類繼承了某些介面,就必須全部實現這些介面裡面的方法 3、介面方法許可權必須為public 默認為public許可權 Final方法 1、Final方法定義的類方法不能被其他子類改寫 2、Final關鍵字不能去修飾類屬性 什麼使用用final 1、因為安全考慮,類的某個方法不允許修改 2、不希望某個類被其他的類繼承

② get_class說明

get_class() 是 PHP 中的一個內置函數,用於返回對象實例所屬類的名字。

使用語法為:string get_class([object obj])。

其中,obj 參數可選。如果 obj 是一個對象,則返回該對象實例所屬類的名字;如果 obj 不是一個對象,則返回 FALSE。

在 PHP 擴展庫中定義的類返回其原始定義的名字。但在 PHP 4 中,get_class() 返回用戶定義的類名的小寫形式。而自 PHP 5 起,無論在擴展庫還是用戶自定義類中,get_class() 都會返回類名定義時的名字,如同擴展庫中的類名一樣。

值得注意的是,在對象的方法中調用 get_class() 時,obj 參數為可選參數。

總之,get_class() 函數提供了一種方便的方法,可以獲取對象實例所屬類的名字,這對於程序調試和維護非常有用。了解其工作原理和用法,可以幫助開發者更高效地使用 PHP 編寫代碼。

③ php彈出「undefined property:stdclass」 ,怎麼解決

這種情況一般是你對一個類對象,使用了屬性調用造成的。

比如應該是

echo$a->att1;


你寫錯成了:

echo$a['att1'];


改回來就可以了。

PHP中使用關鍵字 class 來定義一個類。類的命名一般使用首字元大寫,而後每個單詞首字元大寫連接的方式方便閱讀。


在PHP5中,屬性指在class 中聲明的變數。在聲明變數時,必須使用 public private protected 之一進行修飾,定義變數的訪問許可權。PHP中的屬性:用來描述對象的數據元素稱為對象的屬性(也稱為數據/狀態)

Public(公開): 可以自由的在類的內部外部讀取、修改。


Private(私有): 只能在這個當前類的內部讀取、修改。


Protected(受保護):能夠在這個類和類的子類中讀取和修改。屬性的使用:通過引用變數的 -> 符號調用變數指向對象的屬性。


在方法內部通過 $this-> 符號調用同一對象的屬性。

所以應該用箭頭調用而不是括弧。

④ 誰給個php操作mysql類並有詳細使用說明或例子

下面這個,是針對php5的一個簡單資料庫封裝類,適合學習,其他的如刪除、更新等操作,你可以自己加上:
<?php
class Mysql{ //首先定義一個類,首寫字母大寫
public $host;//伺服器名,訪問修飾符PUBLIC證明$host是一個公共的屬情在類的內部外部都可訪問,可以被繼承
public $user;//用戶名,是公共的屬性
private $pass;//密碼,問修飾符private證明$pass是私有的.只能在類的內部使用且不能被繼承.
public $dbname;//資料庫名,也是公共的屬性.
//__construct聲名這是一個造函數,定義一些初始的信息.有三個參數
public function __construct($host,$user,$pass,$dbname){
$this->host = $host;
$this->慧雀user = $user;
$this->戚晌pass = $pass;
$this->dbname = $dbname;
$link = @mysql_connect($this->host,$this->user,$this->pass)
or die("error");
@mysql_select_db($this->dbname,$link)
or die("error2");
}
//定義資料庫的查尋和顯示函數
function myQuery($sql){
$result = mysql_query($sql);
if(!$result){
echo "error3";
exit;
}
$num = mysql_num_rows($result);
if($num){
echo "NO".$num;
}
while($row = mysql_fetch_assoc($result)){
echo '<tr><td bgcolor="#fffddd"><pre>'.htmlspecialchars(stripslashes($row['body']))."<pre></td></tr>";
}
}
}
$rutt = new Mysql('localhost','root','ssss','calvin');//實例化一個類...記住這里的參數是和構高碧鋒造函數的參數一樣的...
$rutt->myQuery('select * from calvin_body');//運行資料庫查尋並顯示的函數..
?>

下面這個是針對php5以下版本的資料庫封裝類,體現了php類的繼承,一個許願版程序的:
<?php
/*
* FileName: DatabaseSQL.inc.php
* Author: Terry
* Function: 建立DatabaseSQL對象,實現對資料庫的基本操作
* Version : Blue-System v2.0
* CreateDate: 2004-03-10
* Copyright: Blue-Workshop / http://www.blue4me.net
*/

// 定義DatabaseSQL對象
Class DatabaseSQL
{
var $CONN = ""; // 連接號
var $HOST = "Localhost"; // 主機名
var $USER = ""; // 用戶名
var $PASSWORD = ""; // 密碼

// DatabaseSQL類的構造函數
function DatabaseSQL($DBNAME)
{
$user = $this -> USER;
$password = $this -> PASSWORD;
$host = $this -> HOST;
$db = $DBNAME;

// 連接資料庫
$conn = mysql_connect($host, $user, $password);
mysql_select_db($db, $conn);
$this -> CONN = $conn;
return true;
}

// 定義查詢操作
function select($strSQL = "")
{
if ( empty($strSQL) ) return false;
if ( empty($this -> CONN) ) return false;
$conn = $this -> CONN;

// 發送SQL語句,獲得結果
$result = mysql_query($strSQL, $conn);
if ( (!$result) or (empty($result)) ) {
return false;
}
$num = 0;
$data = array();
// 將查詢結果放二維數組中
while ( $row = mysql_fetch_array($result) ) {
$data[$num] = $row;
$num++;
}
mysql_free_result($result);
return $data;
}

// 定義插入操作
function insert($strSQL = "")
{
if ( empty($strSQL) ) return false;
if ( empty($this -> CONN) ) return false;
$conn = $this -> CONN;

// 發送SQL語句,插入新數據
$result = mysql_query($strSQL, $conn);
if ( !result ) return false;

// 獲得記錄的id號
$result = mysql_insert_id();
return $result;
}

// 定義更新操作
function update($strSQL = "")
{
if ( empty($strSQL) ) return false;
if ( empty($this -> CONN) ) return false;
$conn = $this -> CONN;

// 發送SQL語句,更新資料庫
$result = mysql_query($strSQL, $conn);
return $result;
}

// 定義刪除操作
function delete($strSQL = "")
{
if ( empty($strSQL) ) return false;
if ( empty($this -> CONN) ) return false;
$conn = $this -> CONN;

// 發送SQL語句,刪除記錄
$result = mysql_query($strSQL, $conn);
return $result;
}

}
?>

----------------------------------

<?php
/*
* FileName: Wish.inc.php
* Author: Terry
* Function: 建立Wish對象,實現對許願板進行操作功能
* Version : Blue-System v2.0
* CreateDate: 2004-03-10
* Copyright: Blue-Workshop / http://www.blue4me.net
*/

require "config.inc.php";
require "DatabaseSQL.inc.php";

// 定義Wish對象
Class Wish extends DatabaseSQL
{
// 構造函數
function Wish()
{
$DBName = $GLOBALS["dbname"];
$this -> DatabaseSQL($DBName);
}

// 添加新願望(use in wish/save.php?action=add_wish)
function AddWish($name,$receiver,$type,$address,$content,$hide,$addtime)
{
$strSQL = "insert into Wish (Name, Receiver, Type, Address, Content, Hide, AddTime) values ('$name', '$receiver', '$type', '$address', '$content', '$hide', '$addtime')";
$result = $this -> insert($strSQL);
return $result;
}

// 修改指定id的願望內容(use in save.php?action=edit_wish)
function EditWish($wid,$name,$receiver,$type,$address,$content,$hide)
{
$strSQL = "update `Wish` set `Name` = '$name', `Receiver` = '$receiver', `Type` = '$type', `Address` = '$address', `Content` = '$content', `Hide` = '$hide' where `WID` = '$wid' ";
$result = $this -> update($strSQL);
return $result;
}

// 願望列表(use in index.php)
function ListWish($startid,$list_nums)
{
$strSQL = "select * from Wish order by AddTime desc LIMIT $startid,$list_nums";
$result = $this -> select($strSQL);
return $result;
}

// 獲取指定願望信息(use in index.php?go=view_wish)
function GetWish($wid)
{
$strSQL = "select * from Wish where WID = '$wid'";
$result = $this -> select($strSQL);
return $result;
}

// 更新指定願望的瀏覽數(use in index.php?go=view_wish)
function UpdateHit($wid)
{
$strSQL = "update `Wish` set `Hit` = ( `Hit` + 1 ) where `WID` = '$wid'";
$result = $this -> update($strSQL);
return $result;
}

// 刪除指定願望信息(use in save.php?action=del_wish)
function DelWish($wid)
{
$strSQL = "delete from Wish where WID = '$wid'";
$result = $this -> delete($strSQL);
return $result;
}

}
?>

---------------------------------------

<?php
/*
* FileName: config.inc.php
* Author: Terry
* Function: 系統基本設置
* Version : B.S - Wish v1.0
* CreateDate: 2004-03-19
* Copyright: Blue-Workshop
* Tec-Support: http://www.blue4me.net / http://feeltouch.8u8.com
* Attention: 請保留版權信息,謝謝 ^_^
*/

// 資料庫信息
$dbhost = "Localhost"; /* 主機名 */
$dbuser = ""; /* 資料庫用戶 */
$dbpwd = ""; /* 資料庫密碼 */
$dbname = "BS_Wish"; /* 資料庫名 */

// 管理員信息
$adminname = "blue"; /* 初始化管理員 */
$adminpwd = "blue"; /* 初始化管理密碼 */
?>

⑤ 在php中如何設置類的屬性,如何調用類的方法

PHP訪問類的屬性、方法使用箭頭語法(->)。這里我給你一個例子供你參考:

<?php
classMyClass{//定義MyClass類
public$name;//定義了一個公有屬性
protected$_age;//定義了一個保護屬性
private$_email;//定義了一個私有屬性

publicfunctionmy_method(){//定義my_method方法
}

protectedfunction_my_method2(){//定義_my_method2方法
}
}
$obj=newMyClass;//實例化
$obj->name='noname';//設置name屬性
$obj->_age=12;//這是錯誤的,不能設置保護屬性
$obj->address='KingStreet.'//設置一個未聲明的屬性是允許的,效果和公有屬性類似,但未賦值前不能使用。
$obj->my_method()//調用公有方法
$obj->_my_method2();//這是錯誤的,不能調用保護方法

你需要理解繼承、公有、保護和私有的概念。

繼承:子類繼承父類的公有、保護屬性和方法。

公有:類的實例可以訪問的屬性和方法。

保護:只能在類的內部及其子類內部訪問的屬性和方法。

私有:只能在類的內部訪問的屬性和方法。


這是個很基礎的問題,建議你多看書。

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:620
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:350
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:64
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:290
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:783
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:335
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:199
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:793
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:351
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:579