⑴ php是什麼類型的文件,該如何使用
PHP,即「PHP: Hypertext Preprocessor」,是一種廣泛用於 Open Source(開放源代碼)的尤其適合 Web 開發並可以嵌入 HTML 的多用途腳本語言。它的語法接近 C,Java 和 Perl,而且容易學習。該語言的主要目標是讓 Web 開發人員快速的書寫動態生成的網頁.
PHP 代碼是運行在服務端的.
它的使用需要你的伺服器安裝php服務.
PHP 能做什麼?
PHP 能做任何事。PHP 主要是用於服務端的腳本程序,因此您可以用 PHP 來完成任何其它的 CGI 程序能夠完成的工作,例如收集表單數據,生成動態網頁,或者發送/接收 Cookies。但 PHP 的功能遠不局限於此。
PHP 腳本主要用於以下三個領域。
服務端腳本。這是 PHP 最傳統,也是最主要的目標領域。開展這項工作您需要具備以下三點:PHP 解析器(CGI 或者伺服器模塊)、WEB 伺服器和 WEB 瀏覽器。您需要在運行 WEB 伺服器時,安裝並配置 PHP,然後,可以用 WEB 瀏覽器來訪問 PHP 程序的輸出,即瀏覽服務端的 PHP 頁面。請查閱「安裝」一章以獲取更多信息。
命令行腳本。您可以編寫一段 PHP 腳本,並且不需要任何伺服器或者瀏覽器來運行它。通過這種方式,您僅僅只需要 PHP 解析器來執行。這種用法對於依賴 cron(Unix 或者 Linux 環境)或者 Task Scheler(Windows 環境)的日常運行的腳本來說是理想的選擇。這些腳本也可以用來處理簡單的文本。請參閱「PHP 的命令行模式」以獲取更多信息。
編寫客戶端的 GUI 應用程序。對於基於窗口式的應用程序來說,PHP 或許不是一種最好的語言,但是如果您非常精通 PHP,並且希望在您的客戶端應用程序中使用 PHP 的一些高級特性,您可以利用 PHP-GTK 來編寫這些程序。用這種方法,您還可以編寫跨平台的應用程序。PHP-GTK 是 PHP 的一個擴展,在通常發布的 PHP 包中並不包含它。如果您對 PHP-GTK 感興趣,請訪問其網站以獲取更多信息。
PHP 能夠用在所有的主流操作系統上,包括 Linux、Unix 的各種變種(包括 HP-UX、Solaris 和 OpenBSD)、Microsoft Windows、Mac OS X、RISC OS 等。今天,PHP已經支持了大多數的 WEB 伺服器,包括 Apache、Microsoft Internet Information Server(IIS)、Personal Web Server(PWS)、Netscape 以及 iPlant server、Oreilly Website Pro Server、Caudium、Xitami、OmniHTTPd 等。對於大多數的伺服器,PHP 提供了一個模塊;還有一些 PHP 支持 CGI 標准,使得 PHP 能夠作為 CGI 處理器來工作。
綜上所述,使用 PHP,您可以自由地選擇操作系統和 WEB 伺服器。同時,您還可以在開發時選擇使用面對過程和面對對象,或者兩者混和的方式來開發。盡管 PHP 目前的版本還沒有支持 OOP 所有的標准,但很多代碼倉庫和大型的應用程序(包括 PEAR 庫)僅使用 OOP 代碼來開發。
使用 PHP,您並不局限於輸出 HTML。PHP 還能被用來動態輸出圖像、PDF 文件甚至 Flash 動畫(使用 libswf 和 Ming)。您還能夠非常簡便的輸出文本,例如 XHTML 以及任何其它形式的 XML 文件。PHP 能夠自動生成這些文件,在服務端開辟出一塊動態內容的緩存,可以直接把它們列印出來,或者將它們存儲到文件系統中。
PHP 最強大最顯著的特性之一,是它支持很大范圍的資料庫。您會發現利用 PHP 編寫資料庫支持的網頁簡單得難以置信。目前,PHP 支持如下資料庫:
Adabas D Ingres Oracle (OCI7 and OCI8)
dBase InterBase Ovrimos
Empress FrontBase PostgreSQL
FilePro (read-only) mSQL Solid
Hyperwave Direct MS-SQL Sybase
IBM DB2 MySQL Velocis
Informix ODBC Unix dbm
我們同時還有一個 DBX 擴展庫使得您可以自由的使用該擴展庫支持的任何資料庫。另外,PHP 還支持 ODBC,即 Open Database Connection Standard(開放資料庫連接標准),因此您可以連接任何其它支持該世界標準的資料庫。
PHP 還支持利用諸如 LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows 環境)等不計其數的協議的服務。您還可以開放原始網路埠,使得任何其它的協議能夠協同工作。PHP 支持和所有 WEB 開發語言之間的 WDDX 復雜數據交換。關於相互連接,PHP 已經支持了對 Java 對象的即時連接,並且可以將他們自由的用作 PHP 對象。您甚至可以用我們的 CORBA 擴展庫來訪問遠程對象。
PHP 具有極其有效的文本處理特性,支持從 POSIX 擴展或者 Perl 正則表達式到 XML 文檔解析。為了解析和訪問 XML 文檔,我們支持了 SAX 和 DOM 標准。您可以使用我們的 XSLT 擴展庫來轉換 XML 文檔。
如果您將 PHP 用於電子商務領域,您會發現其 Cybercash payment、CyberMUT、VeriSign Payflow Pro 以及 CCVS 函數對於您的在線交易程序來所是非常有用的。
⑵ PHP __get和__set魔術方法在面向對象中的使用問題
php的面向對象思想編程中聲明方法有三種不同的許可權:public protect private。
public:許可權是最大的,可以內部調用,實例調用等。
protected: 受保護類型,用於本類和繼承類調用。
private: 私有類型,只有在本類中使用。
這些許可權同樣可以應用在變數聲明中。
__set __get 都是php的魔術方法,主要是為了用來改變類的私有屬性用的。
你覺得麻煩可以將private私有的變數改為公共public變數,這個要看需求和個人對面向對象的思考。
追問 : 我想知道的是(用private封裝然後用__set或者__get )和(public設置類的屬性)有什麼不同.都可以取值賦值.
追答 : 沒什麼不同的,實現的效果都一樣,只是private是為了限制訪問入口少一些,或者之前用private時沒有考慮到有如今的調用情況,所以在加了set或get。 比較public是所有人都可以訪問,private是內部人可以訪問,從許可權來看,private會安全一些。
⑶ php面向對象 方法調用
因為你的gettotalsize()函數在你的pagination類外面定義的,所以pagination類無法讀取你這個gettotalsize()函數。你應該把gettotalsize()函數放入pagination類中定義。
⑷ PHP com對象如何使用
更新和添加本身並不和你使用的什麼對象、什麼語言有直接必然聯系!
本身是在於你對sql語句的了解!
Sql語句是獨立於其他任何語言的一種資料庫操作命令!
具體到你的問題:
1、添加:
sql 語法: insert into 表名稱( 欄位集合 ) values ( 欄位值集合 )
比如: $conn -> execute(' insert into user ( uername, password ) values ( \'abc\', 123 )');
這條語句就向user表插入了一條數據, 並且給username和password欄位寫入了值
2、修改
sql 語法 update 表名稱 set 欄位名稱 = 欄位值 where 模式
比如 : $conn -> execute(' update user set username = \'bbb\' where id = 5');
這條語句修改了user表中id欄位值為5的數據的 username欄位的值!
建議樓主網路一下sql教程, 學習一下sql語句, 至少基本的sql 語句語法還是要知道的!
⑸ [php]對象操作的問題
那是對象初始化的值,你找到類里邊的初始函數,一般是和類同名即:classCalculation($x,$y)或者是在構造函數__construct($x,$y)里邊
這里的參數$x,y就對應 3,6
⑹ 怎麼給 PHP 對象動態添加方法
來個例子:
<?php
$a=newstdclass();
$a->name=function(){echo'mylove';};
//調用的時候有點麻煩
$b=$a->name;
$b();
後來我想想,這特么和下面這種寫法是一樣的:
<?php
$a=newstdclass();
$b=$a->name=function(){echo'mylove';};
$b();
反正也不好玩啊。
⑺ php訪問對象
$data = $m_request_data->data; #訪問對象
這一句要注意了。你這里只是臨時定義個變數。要想在類中全部能用它,
class A{
可以在類中先聲明它
private $data;
或者定義一個靜態方法
public static $data;
然後構造方法最後一句變為
public function __construct() {
…………
$this->data= $m_request_data->data; #訪問對象
//靜態方法是self::data = $m_request_data->data;
}
好了這里
function data(){
print_r($this->data);//直接用,列印還是取值$this->data->value();隨你~~
//靜態的是print_r(self::data);
}
⑻ 在PHP中遍歷對象用什麼
其實網路一下就知道
我們知道,php中,foreach可以很方便地對可迭代結構(例如數組,再如對象)進行迭代操作:
[php] view plain
foreach( $array as $elem){
var_mp($elem);
}
[php] view plain
foreach($obj as $key=>$value){
echo "$key=>$value".PHP_EOL;
}
因而我們想:如果對於一個實例化對象,對其進行foreach操作,會發生什麼事情呢?
首先我們定義的基礎類為:
[php] view plain
Class Test{
/* one public variable */
public $a;
public $b;
/* one private variable */
private $c;
public function __construct(){
$this->a = "public";
$this->b = "public";
$this->c = "private";
}
public function traverseInside(){
foreach($this as $key=>$value){
echo $key."=>".$value.EOL;
}
}
}
然後我們實例化該類,對其進行迭代,並與內部迭代的結果進行比較:
[php] view plain
$test = new Test;
echo "<hr>";
echo "traverse outside:".EOL;
foreach( $test as $key=>$value ){
echo $key."=>".$value.EOL;
}
echo "<hr>";
echo "traverse inside:".EOL;
$test->traverseInside();
迭代的結果為:
可以看出:外部foreach循環的結果,只是將對象的公有屬性(public)循環出來了,而對於私有屬性(private),外部foreach是無法循環出來的。因而我們如果想要在外部通過foreach循環出類的所有的屬性(公有的和私有的),僅僅依靠foreach是不行的,必須要對類進行「改造」。如何對類進行改造呢?如果你了解foreach的實現(參考laruence的博客:http://www.laruence.com/2008/11/20/630.html),那麼可以很輕松地找到相應的方案。另外一方面,《設計模式-可復用面向對象軟體設計的基礎》中也提到:通過將對象的訪問和遍歷從對象中分離出來並放入一個迭代器對象中,迭代器模式可以實現以不同的方式對對象進行遍歷。我們暫時不去深挖這句話的意思,只要知道,使用迭代器可以對對象進行遍歷即可。
PHP手冊<預定義介面>部分指出:要實現迭代器模式,需要在可迭代對象中實現如下介面:
[php] view plain
abstractpublicmixedcurrent( void )
abstractpublicscalarkey( void )
abstractpublicvoidnext( void )
abstractpublicvoidrewind( void )
abstractpublicbooleanvalid( void )
有了這個。實現迭代器模式就很方便了,一個簡單的實例如下:
[php] view plain
class TestIterator implements Iterator {
private $point = 0;
private $data = array(
"one","two","three",
);
public function __construct() {
$this->point = 0;
}
function rewind() {
$this->point = 0;
}
function current() {
return $this->data[$this->point];
}
function key() {
return $this->point;
}
function next() {
++$this->point;
}
function valid() {
return isset($this->data[$this->point]);
}
}
$it = new TestIterator;
foreach($it as $key => $value) {
echo $key, $value;
echo "\n";
}
當然,使用了迭代器的對象可以以如下方式進行遍歷:
[php] view plain
$it = new TestIterator;
$it->rewind();
while ($it->valid()){
$key = $it->key();
$value = $it->current();
echo "$key=>$value";
$it->next();
}
最後附上YII中ListIterator(顧名思義,實現對List的迭代操作的迭代器)的實現:
[php] view plain
<?php
/**
* CListIterator class file.
*
* @author Qiang Xue <[email protected]>
* @link http://www.yiiframework.com/
* @right Copyright © 2008-2011 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
/**
* CListIterator implements an interator for {@link CList}.
*
* It allows CList to return a new iterator for traversing the items in the list.
*
* @author Qiang Xue <[email protected]>
* @version $Id$
* @package system.collections
* @since 1.0
*/
class CListIterator implements Iterator
{
/**
* @var array the data to be iterated through
*/
private $_d;
/**
* @var integer index of the current item
*/
private $_i;
/**
* @var integer count of the data items
*/
private $_c;
/**
* Constructor.
* @param array $data the data to be iterated through
*/
public function __construct(&$data)
{
$this->_d=&$data;
$this->_i=0;
$this->_c=count($this->_d);
}
/**
* Rewinds internal array pointer.
* This method is required by the interface Iterator.
*/
public function rewind()
{
$this->_i=0;
}
/**
* Returns the key of the current array item.
* This method is required by the interface Iterator.
* @return integer the key of the current array item
*/
public function key()
{
return $this->_i;
}
/**
* Returns the current array item.
* This method is required by the interface Iterator.
* @return mixed the current array item
*/
public function current()
{
return $this->_d[$this->_i];
}
/**
* Moves the internal pointer to the next array item.
* This method is required by the interface Iterator.
*/
public function next()
{
$this->_i++;
}
/**
* Returns whether there is an item at current position.
* This method is required by the interface Iterator.
* @return boolean
*/
public function valid()
{
return $this->_i<$this->_c;
}
}
⑼ PHP對象的操作( 添加、刪除、使用)
php不是一切皆對象,只有類class才是對象,在類中可以添加,
(添加、刪除、使用)的方法,當然你要編寫一切皆對象的php程序也是可以的。看你功力了。
⑽ PHP中對象的小問題
首先,大多數情況下,涉及到類和函數(方法)的時候才會用到this!
在一個類中,即在同一個class下,會存在多個變數和函數,例如/*
class test{
private $user;
function setuser($user){
$this->user = $user ;//請注意這句話
}
}*/
這個小例子中出現了兩個user,如何來區分?對於function來說,使用傳遞過來的參數或者new出來的變數,直接寫名字;使用function之外的變數,用$this->變數名;
對象使用的是$對象->變數名,而不是this,二樓說的不清楚