導航:首頁 > 編程語言 > php自定義類型

php自定義類型

發布時間:2022-03-01 09:52:22

A. php中如何定義對象類型數組

應該是存到對象屬性中吧
你把
public function setDepartment($department)
{
$this->department=$department;
}
改成
public function setDepartment($department)
{
$this->department[]=$department;
}
即可
private $department;
要不要改成
private $department=array();
其實無所謂

B. PHP自定義函數時怎麼指定參數類型

class User{
public $name;
public $password;
function __construct($name,$password){
$this->name=$name;
$this->password=$password;
}
}
//參數可以指定對象類型
function f1(User $user){
echo $user->name,」,」,$user->password;
}
//參數可以指定數組類型
function f2(array $arr){}
//參數不可以指定基本類型,下面一句會出錯
function f3(string $s){}

C. php如何自定義類庫

說白了,我就是把一些經常使用到的函數,方法寫在一起,以後可以直接引用。
既然是庫,就把安然規則,把庫名,規范排好。

若是存在在多個文件夾里,只能用包含方式。
若不包含,無法實現:你設想一番,php如何能找到你的方法,類,在哪裡??php去哪裡尋找啊?你找不到啊?
只能包含在一起。
如何做過規范,有序的包含,建議你下載開源的(discuz.dedecms)閱讀一番即可。養成良好的方法。

D. PHP自定義函數和自定義變數

就是自己定義一個函數,方便日後使用,特別是一些比較復雜,但又常用的功能

舉個簡單的例子,

我經常要計算兩個日期的時間差,

我可以這樣寫

$date1 = "2008-08-08"; //例如我要計算奧運會開幕時間
$date2 = date("Y-m-d"); //今天的日期
$date3 = abs((strtotime($date1) - strtotime($date2))/86400);

$date3就是兩天相隔的日期

但這樣太麻煩了,每次都要寫這么多,於是我就自定義一個函數

例如

function shuTime($date1,$date2){
$date3 = abs((strtotime($date1) - strtotime($date2))/86400);
return $date3;
}

這樣,我就不用每次使用該功能時都寫這么多,
只需要寫

echo shuTime("2008-08-08",date("Y-m-d"));

直接輸入兩個日期就可以了..

自定義變數也是這個道理,把一些比較長又常用的變數自定義為常量.

E. php 定義 double 或 float 型 變數

不需要特別定義,只需要這樣==》$a=0.00;感覺沒什麼double和float之分,你後面的計算賦予它的值有小數它自然就是double或float,沒有小數就是int,如果要規定小數點後留幾位可以用round函數

F. 如何在thinkphp裡面自定義類


  1. 將類文件 abc.class.php 放入以下目錄:ThinkPHP/Library/Org/Util/

  2. 類文件開頭必須命名空間:namespace OrgUtil;

  3. 使用時直接實例化類:new OrgUtil類名

  4. OK,恭喜你成功了

G. 編寫一個PHP類時,如何直接定義一個類變數

classtest{
public$ex;
publicfunctiongetNum(){}
publicfunction__construct(){
$this->ex=newExample();
}

}

H. 如何在PHP中定義一個類

當你聲明一個類,你需要列出對象應有的所有變數和所有函數?被稱為屬性和方法圖1中顯示了一個類的構成. 注意在大括弧({})內你只能聲明變數或者函數. 圖2中顯示了如何在一個類中定義三個屬性和兩個方法.

以下為引用的內容:
class Name extends Another Class
{
Access Variable Declaration

Access Function Declaration
}

name = $name;
$this->password = $password;

$this->lastLogin = time();

$this->accesses++;
}
// 獲取最後訪問的時間

function getLastLogin()

{
return(date("M d Y", $this->lastLogin));

}
}
//創建一個對象的實例

$user = new User("Leon", "sdf123");
//獲取最後訪問的時間

print($user->getLastLogin() ."\n");
//列印用戶名

print("$user->name\n");

?>

當你聲明屬性,你不需要指明數據類型. 變數可能是整型,字元串或者是另一個對象,這取決於實際情況.在聲明屬性時增加註釋是一個好主意,標記上屬性的含義和數據類型.
當你聲明一個方法,你所做的和在類外部定義一個函數是一樣的. 方法和屬性都有各自的命名空間. 這意味著你可以安全地建立一個與類外部函數同名的方法,兩者不會沖突. 例如,一個類中可以定義一個名為date()的方法. 但是你不能將一個方法命名為PHP的關鍵字,如for或者while.
類方法可能包含PHP中所謂的type hint. Type hint 是另一個傳遞參數給方法的類的名字. 如果你的腳本調用方法並傳遞一個不是類的實例的變數,PHP將產生一個」致命(fatal)錯誤」 . 你可能沒有給其它類型給出type hint,就像整型,字元串,或者布爾值. 在書寫的時候, type hint是否應當包含數組類型仍存在爭議.
Type hint是測試函數參數或者運算符的實例的數據類型的捷徑. 你可能總是返回這個方法. 確認你強制讓一個參數必須是哪種數據類型,如整型. 圖3 確保編譯類只產生Widget的實例

以下為引用的內容:
<?php
//組件

class Widget
{
public $name='none';

public $created=FALSE;
}
//裝配器

class Assembler

{
public function make(Widget $w)

{
print("Making $w->name\n");

$w->created=TRUE;
}
}
//建立一個組件對象

$thing = new Widget;

$thing->name = 'Gadget';
//裝配組件

Assembler::make($thing);
?>

除了傳遞參數的變數外,方法含有一個特殊的變數. 它代表類的個別實例. 你應當用這個來指向對象的屬性和其它方法.一些面向對象的語言假設一個不合格的變數提交給本地屬性,但在PHP中方法的任何變數只是在方法的一定范圍內. 注意在User類的構造函數中這個變數的使用圖2.

I. PHP中如何定義類及其成員屬性與操作

3、類中操作的定義
i. 我本人一般喜歡叫操作為成員方法,以下我會叫操作為方法其實都是一樣的
ii. 成員方法的定義:成員方法就是對該類定義的一些函數方法,比如拿這個類來例句例子,人能吃飯,能跑步,能敲代碼,這就是成員方法。也就是可以做一些可執行性的動作我們理解為成員方法
iii. 成員方法的訪問和成員屬性一樣可以參照上面成員屬性的訪問介紹。
iv. 成員方法和成員屬性一樣也包括public,protected,private,static,final並且作用域也是一樣的,接下來舉一些例子供大家參考和理解。
v. 靜態的成員方法只能訪問靜態的成員屬性和成員方法,並且類內部訪問靜態方法可以使用self::靜態方法(), 類外部訪問使用類名::靜態方法()

J. php中的類有什麼用和自定義函數有什麼區別

請看PHP手冊18章,裡面的內容你看了就明白。

第18章類與對象(PHP4)
目錄

繼承
構造函數
范圍解析操作符(::)
parent
序列化對象-會話中的對象
魔術函數__sleep和__wakeup
構造函數中的引用
對象的比較



類是變數與作用於這些變數的函數的集合。使用下面的語法定義一個類:

<?php
classCart{
var$items;//購物車中的物品

//將$num個$artnr物品加入購物車

functionadd_item($artnr,$num){
$this->items[$artnr]+=$num;
}

//將$num個$artnr物品從購物車中取出

functionremove_item($artnr,$num){
if($this->items[$artnr]>$num){
$this->items[$artnr]-=$num;
returntrue;
}elseif($this->items[$artnr]==$num){
unset($this->items[$artnr]);
returntrue;
}else{
returnfalse;
}
}
}
?>

上面的例子定義了一個Cart類,這個類由購物車中的商品構成的數組和兩個用於從購物車中添加和刪除商品的函數組成。

警告
不能將一個類的定義分割到多個文件中。也不能將一個類的定義分割到多個PHP塊中,除非該分割是在一個方法聲明內部。以下用法將不起作用:

<?php
classtest{
?>
<?php
functiontest(){
print'OK';
}
}
?>

但是以下用法是可以的:

<?php
classtest{
functiontest(){
?>
<?php
print'OK';
}
}
?>

以下警告僅用於PHP4。

小心
名稱stdClass已經被Zend使用並保留。不能在PHP代碼中定義名為stdClass的類。

小心
函數名__sleep和__wakeup在PHP類中是魔術函數。除非想要與之聯系的魔術功能,否則在任何類中都不能以此命名函數。

小心
PHP將所有以__開頭的函數名保留為魔術函數。除非想要使用一些見於文檔中的魔術功能,否則建議不要在PHP中將函數名以__開頭。

在PHP4中,var變數的值只能初始化為常量。用非常量值初始化變數,需要一個初始化函數,該函數在對象被創建時自動被調用。這樣一個函數被稱之為構造函數(見下面)。

<?php
/*PHP4中不能這樣用*/
classCart{
var$todays_date=date("Y-m-d");
var$name=$firstname;
var$owner='Fred'.'Jones';
/*不過包含有常量的數組可以*/
var$items=array("VCR","TV");
}

/*應該這樣進行*/
classCart{
var$todays_date;
var$name;
var$owner;
var$items=array("VCR","TV");
functionCart(){
$this->todays_date=date("Y-m-d");
$this->name=$GLOBALS['firstname'];
/*etc...*/
}
}
?>
類也是一種類型,就是說,它們是實際變數的藍圖。必須用new運算符來創建相應類型的變數。

<?php
$cart=newCart;
$cart->add_item("10",1);

$another_cart=newCart;
$another_cart->add_item("0815",3);
?>
上述代碼創建了兩個Cart類的對象$cart和$another_cart,對象$cart的方法add_item()被調用時,添加了1件10號商品。對於對象$another_cart,3件0815號商品被添加到購物車中。

$cart和$another_cart都有方法add_item(),remove_item()和一個items變數。它們都是明顯的函數和變數。可以把它們當作文件系統中的某些類似目錄的東西來考慮。在文件系統中,可以擁有兩個不同的README.TXT文件,只要不在相同的目錄中。正如從為了根目錄訪問每個文件需要輸入該文件的完整的路徑名一樣,必須指定需要調用的函數的完整名稱:在PHP術語中,根目錄將是全局名字空間,路徑名符號將是->。因而,名稱$cart->items和$another_cart->items命名了兩個不同的變數。注意變數名為$cart->items,不是$cart->$items,那是因為在PHP中一個變數名只有一個單獨的美元符號。

<?php
//正確,只有一個$
$cart->items=array("10"=>1);

//不正確,因為$cart->$items變成了$cart->""
$cart->$items=array("10"=>1);

//正確,但可能不是想要的結果:
//$cart->$myvar變成了$cart->items
$myvar='items';
$cart->$myvar=array("10"=>1);
?>
在定義類的時候,無法得知將使什麼名字的對象來訪問:在編寫Cart類時,並不知道之後對象的名稱將會命名為$cart或者$another_cart。因而你不能在類中使用$cart->items。然而為了類定義的內部訪問自身的函數和變數,可以使用偽變數$this來達到這個目的。$this變數可以理解為「我自己的」或者「當前對象」。因而'$this->items[$artnr]+=$num'可以理解為「我自己的物品數組的$artnr計數器加$num」或者「在當前對象的物品數組的$artnr計數器加$num」。

注意:偽變數$this通常未定義,如果其所在的方法是被靜態調用的話。但這不是個嚴格規定:如果一個方法被從另一個對象內靜態調用的話,則$this會被定義。此時$this的值是那個發出調用的對象。用下例演示:

<?php
classA
{
functionfoo()
{
if(isset($this)){
echo'$thisisdefined(';
echoget_class($this);
echo")\n";
}else{
echo"\$thisisnotdefined.\n";
}
}
}

classB
{
functionbar()
{
A::foo();
}
}

$a=newA();
$a->foo();
A::foo();
$b=newB();
$b->bar();
B::bar();
?>
上例將輸出:

$thisisdefined(a)
$thisisnotdefined.
$thisisdefined(b)
$thisisnotdefined.注意:有一些不錯的函數用來處理類和對象。應該關注一下類/對象函數。

閱讀全文

與php自定義類型相關的資料

熱點內容
優信二手車解壓後過戶 瀏覽:63
Windows常用c編譯器 瀏覽:780
關於改善國家網路安全的行政命令 瀏覽:835
安卓如何下載網易荒野pc服 瀏覽:656
javainetaddress 瀏覽:106
蘋果4s固件下載完了怎麼解壓 瀏覽:1005
命令zpa 瀏覽:288
python編譯器小程序 瀏覽:946
在app上看視頻怎麼光線調暗 瀏覽:542
可以中文解壓的解壓軟體 瀏覽:595
安卓卸載組件應用怎麼安裝 瀏覽:915
使用面向對象編程的方式 瀏覽:342
程序員項目經理的年終總結範文 瀏覽:932
內衣的加密設計用來幹嘛的 瀏覽:435
淮安數據加密 瀏覽:295
魔高一丈指標源碼 瀏覽:984
松下php研究所 瀏覽:171
c回調java 瀏覽:403
夢幻端游長安地圖互通源碼 瀏覽:747
電腦本地文件如何上傳伺服器 瀏覽:315