一:PHP數據的輸出 PHP支持的豐富的數據類型。後來在學習中會反復使用,有其他語言的學習知識,比較記憶更容易了解PHP的獨到之處。下面先闡述一下PHP的輸出。PHP向浏覽器的基本輸出方式有Echo(),Print(),printf(),sprintf()我們可以對比一下一上四種輸出方式。
Function
Echo()
print()
printf()
sprintf()
Return
Void
int: ever return 1
int:
string
Express
Echo(string argument)
print(argument)
printf(string format)
printf(string format)
Instruction
寫入字符串即可
寫入字符串,返回值是1,用來驗證是否成功顯示
支持輸出格式字符串,格式參看下面講述
同樣格式字符串,但是不直接呈現浏覽器
其實Echo()與print() 的區別是不太大的,使用哪一個完全取決於自己的喜好,後兩者一樣。什麼叫格式化字符串輸出呢?有C/C++語言時我們會明白這個意思,也就是輸出時我們可以應該適當的格式化符號,讓輸出格式化。
二:PHP中使用到的格式化輸出格式
這些格式化符號下表顯示:
類型
描述
舉例
%b
將參數認為是一個整數,顯示其二進制數
printf(%d,10);=======>顯示1010
%c
將參數認為是一個整數,顯示其ASCII字符
printf(%c,65);======>顯示A
%d
將參數認為是一個整數,顯示其十進制
printf(%d,10);=======>10
%f
將參數認為是一個浮點數,顯示其浮點數
printf(%f,2);========>2.00000
%o
將參數認為是一個整數,顯示其八進制
Printf(%o,8)============10
%s
將參數認為是一個字符串,顯示其字符串
printf(%s,”this is a TV ”)=====>this is a TV
%u
將參數認為是一個整數,顯示一個無符號十進制
printf(%u,-100)======>100
%x
將參數認為是一個整數,小寫的十六進制
略
%X
將參數認為是一個整數,大寫的
略
三:PHP中變量聲明的注意點 在php中變量的聲明類似於shell腳本語言,變量都是以$符號開始的,我們要注意以下幾點:
1):$總是在變量前面,變量是有效的標示符。
2):變量是嚴格區分大小寫,例如$Book與$book是不一樣的。
3):PHP變量不需要顯示聲明,剛好與C語言相反。
4):聲明之後便可以為變量賦值,賦值分為按值賦值,引用賦值引用賦值是按堆棧地址賦值
四:PHP中變量的的作用域 按照作用域區分變量有局部變量,全局變量,靜態變量,PHP還有獨特的超級全局變量。局部變量只能在聲明的作用域中使用,全局作用變量在整個生命周期中都可以使用。靜態變量是聲明使用Static 修飾符,在函數退出後static 變量仍然在內存中存在。例如
復制代碼 代碼如下:
<?php
funtion keep()
{
static $count=0;
$count++;
echo $count;
echo "<br />";
}
10:
11: keep();//輸出1
12: keep();//輸出2
13: keep();//輸出3
14: keep();//輸出4
15:
16: //你可能以為輸出的值全部是1,但是剛好確實是1234,這裡正是static的使用效果
17: ?>
五:超級全局變量($_SERVER,$_GET,$_POST,$_COOKIE),$_FILES,$_ENV ,$_SESSION
再來看超級全局全局變量。PHP提供很多有用的預定義變量,可以再執行腳本的任意位置訪問,用於提供大量與環境相關的信息,還可以獲得當前用戶會話(session),操作環境,本地環境等等。例如可以使用
復制代碼 代碼如下:
foreach($_SERVER as $var => $value)
{
//遍歷輸出所有系統超級變量
echo "$var => $value <br />";
}
可以看到輸出好多系統變量
HTTP_HOST
=>
Localhost
等等系統信息
我們就可以通過
$_SERVER[“HTTP_HOST”]
來獲得這些全局變量。$_SERVER全局變量包含WEB服務器,客戶配置,當前信息等可以通過查找文檔使用。
另外還可以通過GET方法獲取傳遞的變量。$_GET超級全局變量包含試用GET方法專遞的參數的有關信息。例如請求的URL地址是http://www.baidu.com/index.html?cat=apache&id=145 ,就可以使用超級全局變量訪問如下變量:$_GET[‘cat']=”apache”; $_GET[‘id']=”145” ,默認的情況下要訪問通過GET方法傳遞的變量,$_GET 超級全局變量是唯一的訪問途徑,不能用$cat, $id的方式引用GET的變量,後續了解關於安全訪問外部數據的章節會詳細說明。
另外使用POST的方法也可以傳遞變量。
具體如下:$_POST超級全局變量包含用POST方法傳遞參數有關信息。
考慮如下的請求表單:
復制代碼 代碼如下:
<form action="a.php" method="post">
<p/> Email-adress:<input type="text" name="email" size="20" maxlength="50" value="">
<p />Password:<br />
<input type="password" name="pswd" size="20" maxlength="15" value="">
<br/>
<input type="submit" name="submit" size="20" maxlength="50" value="LOGIN">
</form>
通過目標腳本a.php就可以使用下面這些POST變量:
$_POST[‘email']=”
[email protected]”;
$_POST[‘pswd']=”Bestyear”;
我們還可以使用超級全局變量保存COOKIE信息,$_COOKIE保存了HTTPcookie中的所有傳到腳本的信息,這些cookie一般由以前執行的PHP腳本通過PHP函數setcookie()設置的。例如:
復制代碼 代碼如下:
<?php
$value = ' somewhere';
setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600); /* 一小時有效cookie */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1);
?>
這裡看不懂無所謂的,後來還會專門研究cookie的知識。
$_FILES是通過POST向服務器上傳文件使用的變量,$_files主要用在當需要上傳二進制文件的地方,錄入上傳一個abc.mp3文件,則服務器端需要獲得該文件的相關信息,則通過變量$_files來取得。 共有五個元素:
1):$_FILES['userfile']['name']
客戶端機器文件的原名稱。
2):$_FILES['userfile']['type']
文件的 MIME 類型,需要浏覽器提供該信息的支持,例如“image/gif”。
3):$_FILES['userfile']['size']
已上傳文件的大小,單位為字節。
4):$_FILES['userfile']['tmp_name']
文件被上傳後在服務端儲存的臨時文件名。
5):$_FILES['userfile']['error']
和該文件上傳相關的錯誤代碼。['error'] 是在 PHP 4.2.0 版本中增加的。
$_EVN 是PhP服務器使用的有關信息, $_SESSION 獲得會話的有關信息
六:PHP 常量定義使用
常量是程序中無法更改的量,非常有用如:圓周率
定義:define(”PI” ,3.1415926)
使用 echo PI;
七:關於PHP中的邏輯符號,運算等級,表達式,流程控制,邏輯等等不再介紹,基本和C++語言相符,這裡只是簡單寫一下沒有的部分。例如 Include 在PHP中的作用。
include在PHP中也是引入包含文件的句子,基本語法是include(/path/to/file)要引用/user/local/lib/php/wjgilmore/init.inc.php 則要這樣:
復制代碼 代碼如下:
<?php
include "/user/local/lib/php/wjgilmore/init.inc.php ";
?>
有個地方需要注意,就是
include在判斷句中是,必須要用大括號{}界定
,否則會錯誤,這個要注意.,還可以通過include引用一個遠程文件.如果文件所在的服務器支持PHP,通過傳遞必要的鍵值對(類似於GET請求的做法,所包含的變量也會得到解析)
例如:include “http://www.123.com/index.html?background=red”;
如果只引用一次,則用
include_once
,首先會檢驗是否引用了這個文件,如果沒有則引用,如果有則不執行
include_once(),
確保一次。
同樣的方法require是請求文件,同樣是require_once請求一次。後續用到時間詳細解釋。