傳值賦值:當將一個運算式的值賦予一個變數時,整個原始運算式的值被賦予到目標變數。這意味著,例如,當一個變數的值賦予另一個變數時,改變其中一個變數的值,將不會影響到另一個變數。
複製代碼 代碼如下:<?php <?php
$a=123; $a=123;
$b=$a; $b=&$a;
$a=321; $a=321;
Echo”$a,$b”;//顯示”321,123” Echo”$a,$b”;//顯示”321,321”
?> ?>
引用賦值:新的變數簡單的引用了原始變數,改變新的變數將影響到原始變數使用引用賦值,簡單地將一個&符號加到將要賦值的變數前(源變數)
類型戲法PHP 在變數定義中不需要(或不支援)明示的類型定義;變數類型是根據使用該變數的上下文所決定的。也就是說,如果把一個字串值賦給變數 var ,var 就成了一個字串。如果又把一個整型值賦給 var ,那它就成了一個整數。
類型強制轉換
允許的強制轉換有: (int),(integer) - 轉換成整型 (bool),(boolean) - 轉換成布爾型 (float),(double),(real) - 轉換成浮點型 (string) - 轉換成字串 (array) - 轉換成數組 (object) - 轉換成對象 Settype()進行類型轉換
函數Settype()
[code]
<?php
$foo = "5bar"; // string
$bar = true; // boolean
settype($foo, "integer"); // $foo 現在是 5 (integer)
settype($bar, "string"); // $bar 現在是 "1" (string)
?>
變數範圍變數的範圍即它定義的上下文背景(也就是它的生效範圍)。大部分的 PHP 變數只有一個單獨的範圍。這個單獨的範圍跨度同樣包含了 include 和 require 引入的檔案。
靜態變數變數範圍的另一個重要特性是靜態變數(static variable)。靜態變數僅在局部函數域中存在,但當程式執行離開此範圍時,其值並不丟失。
數組PHP 中的數組實際上是一個有序圖。圖是一種把 values 映射到 keys 的類型。此類型在很多方面做了最佳化,因此可以把它當成真正的數組來使用,或列表(向量),散列表(是圖的一種實現),字典,集合,棧,隊列以及更多可能性。因為可以用另一個 PHP 數組作為值,也可以很容易地類比樹。
定義 array() 可以用 array() 語言結構來建立一個 array。它接受一定數量用逗號分隔的 key => value 參數對。
array( key => value , ... )
// key 可以是 integer 或者 string
// value 可以是任何值 複製代碼 代碼如下:<?php // 現在刪除其中的所有單元,但保持數組本身的結構
// 建立一個簡單的數組 foreach ($array as $i => $value) {
$array = array(1, 2, 3, 4, 5); unset($array[$i]);
print_r($array); }
print_r($array);
// 添加一個單元(注意新的鍵名是 5,而不是你可能以為的 0)
$array[] = 6;
print_r($array); // 重新索引:
$array = array_values($array);
$array[] = 7;
print_r($array);
?>
unset() 函數允許取消一個數組中的鍵名。要注意數組將不會重建索引。 複製代碼 代碼如下:<?PHP
$a = array( 1 => 'one', 2 => 'two', 3 => 'three' );
unset( $a[2] );
/* 將產生一個數組,定義為
$a = array( 1=>'one', 3=>'three');
而不是
$a = array( 1 => 'one', 2 => 'three');
*/
$b = array_values($a);
// Now $b is array(0 => 'one', 1 =>'three')
?>
建構函式
void __construct ([ mixed $args [, $... ]] )
PHP 5 允行開發人員在一個類中定義一個方法作為建構函式。具有建構函式的類會在每次建立對象時先調用此方法,所以非常適合在使用對象之前做一些初始化工作。
Note: 如果子類中定義了建構函式則不會暗中調用其父類的建構函式。要執行父類的建構函式,需要在子類的建構函式中調用 parent::__construct()。
Example#1 使用新標準的建構函式 複製代碼 代碼如下:<?php
class BaseClass {
function __construct() {
print "In BaseClass constructor\n";
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "In SubClass constructor\n";
}
}
$obj = new BaseClass();
$obj = new SubClass();
?>
雙引號裡面的欄位會經過編譯器解釋,然後再當做html代碼輸出。單引號裡面的不進行解釋,直接輸出。$abc='my name is tom'; echo $abc//結果是my name is tom ;echo'$abc'//結果是$abc;echo”$abc”//結果是my name is tom
存取控制對屬性或方法的存取控制,是通過在前面添加關鍵字 public、protected 或 private 來實現的。由 public 所定義的類成員可以在任何地方被訪問;由 protected 所定義的類成員則可以被其所在類的子類和父類訪問(當然,該成員所在的類也可以訪問);而由 private 定義的類成員則只能被其所在類訪問。 複製代碼 代碼如下:<?php
class MyClass
{
public $public = 'Public';
protected $protected = 'Protected';
private $private = 'Private';
function printHello()
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}
抽象類別PHP 5中引入了抽象類別和抽象方法。不允許建立一個已經定義為abstract的類的一個執行個體。任何至少包含一個抽象方法的類也必須是抽象的。被定義為抽象的方法僅僅是聲明方法的一個訊號,並不能定義它們的實現。
當從一個抽象類別繼承時,在父類中所有抽象方法的標記的聲明必須通過子類定義;另外,這些方法必須用定義相同的訪問屬性。例如,如果方法被定義為protected類型,執行函數必須定義為protected或public.
介面對象介面允許你建立一個指定類的方法的執行代碼,而不必說明這些方法是如何被操作(處理)的。介面被用來定義介面關鍵字的使用,同樣作為一個標準類,但沒有任何方法有它們內容的定義。在介面中所有的方法必須聲明為public,這是介面的特性。implements (執行,實現)為了實現一個介面,使用了implements操作。在介面中所有的方法必須在一個類的內部實現;疏忽這些將導致一個致命錯誤。如果渴望通過使用一個逗號分開每個介面,類可以實現多個介面。
重載方法調用和成員訪問都能通過__call,__get和__set方法被載入。這些方法將只有當你試圖訪問不包括成員或方法的對象或繼承對象時觸發。不是所有的重載方法都必須被定義為static.從PHP 5.1.0開始也可以通過__isset()和__unset()方法逐個重載isset()和unset()函數。
PHP $_GET變數是通過get方法從表單中擷取“值”的。當使用“$_GET”變數時,所有的變數名和變數值都會顯示在URL地址欄內;所以,當你發送的資訊包含密碼或是其他一些敏感資訊時,就不可以再使用這種方法。
PHP $_POST變數的作用是:擷取method = “post”方法發送的表單變數。
案例 複製代碼 代碼如下:<form action="welcome.php" method="post">
Enter your name:
<input type="text" name="name" />
Enter your age:
<input type="text" name="age" />
<input type="submit" />
</form>
Cookie通常用來驗證或辨別一個使用者。Cookie是通過伺服器發送到使用者電腦中的一個小檔案。每次,當相同的電腦通過瀏覽器請求一個頁面時,原先儲存的cookie也會發送到伺服器。你可以使用PHP來建立和擷取cookie的值。 複製代碼 代碼如下:<?php
setcookie("user", "Alex Porter", time()+3600); ?>
<html> <body></body> </html>
擷取cookie值<?php
// Print a cookie
echo $_COOKIE["user"];
// A way to view all cookies
print_r($_COOKIE);
?>
PHP session變數的作用是:儲存使用者的session資訊,或者改變使用者的session設定。Session變數儲存了一個單一使用者的資訊,它可以被所有的頁面使用。
<?php session_start(); ?> <html> <body></body> </html>
Mvc模式 將應用的表示與底層應用邏輯相分離 分三個部分:模型 視圖 控制器
Zend_controllers路由發送一個使用者請求時,它會自動地在控制器目錄中尋找一個名為nameController.php的檔案,這裡name對應所指定的控制器名,這說明名為news的控制器對應於一個名為newscontroller.php的檔案
Smarty是一個php編寫的模板引擎,使你能輕鬆地將應用輸出和表示邏輯和應用邏輯分離
ZEND配置
1、建立本地解析C:\WINNT\system32\drivers\etchosts
127.0.0.1 phpweb20 127.0.0.1 phpmyadmin
2、httpd.conf D:\AppServ\Apache2.2\conf
(1)開啟重寫引擎 hpptd.conf (沒有#的是能開啟的模組) #LoadModule rewrite_module
去掉前面的#
(2)開啟虛擬機器主機 #Include conf/extra/httpd-vhosts.conf 去掉前面#
3、httpd-vhosts.conf 複製代碼 代碼如下:<VirtualHost *:80>
ServerName phpweb20
DocumentRoot "d:\appserv\www\phpweb20\htdocs"
<Directory "d:\appserv\www\phpweb20\htdocs">
AllowOverride All
Options All
</Directory>
php_value include_path ".;d:\appserv\www\phpweb20\include;D:\AppServ\php5\ext"
</VirtualHost>
4、建立.htaccess
5、修改php.ini
C:\WINNT
匯入
php_pdo.dll
php_pdo_mysql.dll