第十一節 重載 [11]

PHP4中已經有了重載的文法來建立對於外部物件模型的映射,就像Java和COM那樣. PHP5帶來了強大的物件導向重載,允許程式員建立自訂的行為來訪問屬性和調用方法.重載可以通過__get, __set, and __call幾個特殊方法來進行. 當Zend引擎試圖訪問一個成員並沒有找到時,PHP將會調用這些方法.在例6.14中,__get和__set代替所有對屬性變數數組的訪問. 如果必要,你可以實現任何類型你想要的過濾. 例如,指令碼可以禁止設定屬性值,

第十二節 類的自動載入 [12]

當你嘗試使用一個未定義的類時,PHP會報告一個致命錯誤. 解決方案就是添加一個類,可以用include包含一個檔案. 畢竟你知道要用到哪個類. 但是,PHP提供了類的自動載入功能, 這可以節省編程的時間. 當你嘗試使用一個PHP沒有組織到的類, 它會尋找一個__autoload的全域函數. 如果存在這個函數,PHP會用一個參數來調用它,參數即類的名稱. 例子6.15說明了__autoload是如何使用的. 它假設目前的目錄下每個檔案對應一個類.

第十四節 命名空間 [14]

命名變數,函數和類是挺困難的,除了要考慮到變數的名稱要易於理解,還要擔心是否這個名稱在其它某個地方已經使用過. 在一小段指令碼中,第二個問題是基本問題. 當你考慮重用你的代碼, 在這之後的項目代碼必須避免使用你用過的命名. 通常來說,可重用的代碼總是包含在函數或類中, 需要處理許多可能發生的命名衝突. 但函數和類之間也可能發生命名衝突. 你可以嘗試避免出現這種情況,通過在所有類前添加首碼的方法,或者你可以使用namespace語句.Namespace關鍵字給一塊代碼命名.

PHP4之真OO

PHP4之真OO文的作者Johan Persson是PHP中著名的JpGraph圖表類庫的開發人員. 本文是作者對於在PHP4中進行物件導向開發時需要注意的幾個小問題的總結.翻譯: Binzy Wu [Mail: Binzy at JustDN dot COM], 水平有限, 歡迎探討. 2004-2-4簡介本文的對象是那些曾使用更加成熟的OO [1] 語言, 如Eiffel, Java, C# [2] or C++(), 進行開發的朋友(如我自己).

對盜鏈說再見…

第一頁內隨機的產生一個數(0-15)-》dechex()儲存在session內然後將URL使用此標記進行運算,隨便你運算了,不過要能逆過來才行~第二頁則檢測是否有此標記,有則進行逆運算,然後將變數取出優點:(必須訪問網站URL才有效~)缺點:(儲存到本地的頁面連結全部失效,盜鏈失效)---------------------------------------------<?php ob_start();session_start(); if(isset($_SESSION[key])){

Classes and Objects in PHP5-物件導向編程 [1]

作者:Leon Atkinson 翻譯:Haohappy物件導向編程被設計來為大型軟體項目提供解決方案,尤其是多人合作的項目. 當原始碼增長到一萬行甚至更多的時候,每一個更動都可能導致不希望的副作用. 這種情況發生於模組間結成秘密同盟時候,就像第一次世界大戰前的歐洲.//haohappy注:喻指模組間的關聯度過高,相互依賴性太強.更動一個模組導致其它模組也必須跟著更動.想像一下,如果有一個用來處理登入的模組允許一個信用卡處理模組來分享它的資料庫連接.

第二節 物件模型 [2]

PHP5有一個單重繼承的,限制訪問的,可以重載的物件模型. 本章稍後會詳細討論的”繼承”,包含類間的父-子關係. 另外,PHP支援對屬性和方法的限制性訪問. 你可以聲明成員為private,不允許外部類訪問. 最後,PHP允許一個子類從它的父類中重載成員.file://haohappy注:PHP4中沒有private,只有public.private對於更好地實現封裝很有好處.PHP5的物件模型把對象看成與任何其它資料類型不同,通過引用來傳遞.

用Socket寄送電子郵件(利用需要驗證的SMTP伺服器)

<? * 名稱:用Socket寄送電子郵件 * 描述:本類實現了直接使用需要驗證的SMTP伺服器直接發送郵件,參考文章《用Socket寄送電子郵件》作者:limodou * 此文章比較早,他是用不用驗證SMTP伺服器發送郵件,現在基本上SMTP伺服器都需要驗證了,所以這個文章裡的類 意義也不是很大!同時參考了[RFC 1869]和PHP手冊!!和上文還有不同的是我用的不是fsockopen()函數

第三節 定義一個類 [3]

當你聲明一個類,你需要列出對象應有的所有變數和所有函數—被稱為屬性和方法. 3.1.1中顯示了一個類的構成. 注意在大括弧({})內你只能聲明變數或者函數. 3.1.2中顯示了如何在一個類中定義三個屬性和兩個方法.3.1.1class Name extends Another Class { Access Variable Declaration Access Function Declaration }3.1.2<?php //定義一個跟蹤使用者的類 class User { //屬性

第十三節 對象序列化 [13]

序列化可以把變數包括對象,轉化成連續bytes資料. 你可以將序列化後的變數存在一個檔案裡或在網路上傳輸. 然後再反序列化還原為原來的資料. 你在反序列化類的對象之前定義的類,PHP可以成功地儲存其對象的屬性和方法. 有時你可能需要一個對象在反序列化後立即執行. 為了這樣的目的,PHP會自動尋找__sleep和__wakeup方法.當一個對象被序列化,PHP會調用__sleep方法(如果存在的話). 在反序列化一個對象後,PHP 會調用__wakeup方法. 這兩個方法都不接受參數.

第1次親密接觸PHP5(2)

接上篇,繼續硬著頭皮往下翻。。。。:)類型指示 在PHP5,你可以在一個類的方法中指明其參數必須為一個類的執行個體:Example 10: 類型執行個體<?phpclass foo { // code ...}class bar { public function process_a_foo(foo $foo) { // Some code }}$b = new bar();$f = new

Zend引擎的發展 [15]

本章的最後一節,Zeev討論了Zend引擎帶來的物件模型,特別提到它與PHP的前幾個版本中的模型有什麼不同.當1997年夏天,我們開發出PHP3, 我們沒有計劃要使PHP具備物件導向的能力. 當時沒有任何與類和對象有關的想法. PHP3是一個純粹面向過程的語言. 但是,在1997.8.27的晚上PHP3 alpha版中增加了對類的支援. 增加一個新特性給PHP,當時僅需要極少的討論,因為當時探索PHP的人太少. 於是從1997年八月起,

第七節 類的靜態成員 [7]

類的靜態成員與一般的類成員不同: 靜態成員與對象的執行個體無關,只與類本身有關. 他們用來實作類別要封裝的功能和資料,但不包括特定對象的功能和資料. 靜態成員包括靜態方法和靜態屬性.靜態屬性包含在類中要封裝的資料,可以由所有類的執行個體共用. 實際上,除了屬於一個固定的類並限制訪問方式外,類的靜態屬性非常類似於函數的全域變數我們在下例中使用了一個靜態屬性Counter::$count.

VML繪圖板②指令碼–VMLgraph.js、XMLtool.js

指令碼************** VMLgraph.js*************var xo=0;var yo=0;var ox=80;var oy=20;var dx=0;var dy=0;var drawKey = false;var itemID = 0;var ShapeItemNum = 0;var ShapeItemX = 0;var ShapeItemY = 0;var CurveItemNum = 0;var NodeDelete = false;var

第五節 複製 [5]

PHP5中的物件模型通過引用來調用對象, 但有時你可能想建立一個對象的副本,並希望原來的對象的改變不影響到副本 . 為了這樣的目的,PHP定義了一個特殊的方法,稱為__clone. 像__construct和__destruct一樣,前面有兩個底線.預設地,用__clone方法將建立一個與原對象擁有相同屬性和方法的對象. 如果你想在複製時改變預設的內容,你要在__clone中覆寫(屬性或方法).複製的方法可以沒有參數,但它同時包含this和that指標(that指向被複製的對象).

一個多檔案上傳的例子(原創)

<?//filename:multi_upload.phpif($ifupload){ $path=AddSlashes(dirname($PATH_TRANSLATED))."\\upload\\"; for($i=1;$i<=8;$i++) { $files="afile".$i; if(${$files}!="none") { if(copy(${$files},$path.${$files."_name"})) {

第六節 訪問屬性和方法 [6]

一個對象執行個體的屬性是變數,就像PHP的其他變數一樣. 但是你必須使用->運算子來引用它們. 不需要在屬性前使用美元符$. 例如, 6.1中列印User對象的name屬性那一行. 可以聯用->,如果一個對象的屬性包含了一個對象,你可以使用兩個->運算子來得到內部對象的屬性. 你甚至可以用雙重引用的字串來放置這些運算式. 看6.5中的例子,對象House中的屬性room包含了一組Room對象.存取方法和訪問屬性類似. ->運算子用來指向執行個體的方法.

第八節 訪問方式 [8]

PHP5的訪問方式允許限制對類成員的訪問. 這是在PHP5中新增的功能,但在許多物件導向語言中都早已存在. 有了訪問方式,才能開發一個可靠的物件導向應用程式,並且構建可重用的物件導向類庫.像C++和Java一樣,PHP有三種訪問方式:public,private和protected. 對於一個類成員的訪問方式,可以是其中之一. 如果你沒有指明訪問方式,預設地訪問方式為public. 你也可以為靜態成員指明一種訪問方式,將訪問方式放在static關鍵字之前(如public

第四節 建構函式和解構函式 [4]

如果你在一個類中聲明一個函數,命名為__construct,這個函數將被當成是一個建構函式並在建立一個對象執行個體時被執行. 清楚地說,__是兩個底線. 就像其它任何函數一樣,建構函式可能有參數或者預設值. 你可以定義一個類來建立一個對象並將其屬性全放在一個語句(statement)中. 你也可以定義一個名為__destruct的函數,PHP將在對象被銷毀前調用這個函數. 它稱為解構函式.繼承是類的一個強大功能. 一個類(子類/衍生類別)可以繼承另一類(父類/基類)的功能.

PHP5 安裝方法

本文介紹的是Windows 2000下PHP+IIS的安裝方法(ISAPI方式)1,把php-5.0.0-Win32.zip解壓放到C:\php2,php.ini-dist改名為php.ini,找到第438行改成 extension_dir =

總頁數: 61357 1 .... 2628 2629 2630 2631 2632 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.