特別注意:php與j**a,c#有區別,使用者定義的全域性變數在php語言中並不算是全域性的,如果需要使用必須使用global$globals來引用。
<?php
$w=1;
$r=2;
function demo()
demo();
?>
要達到預期效果,可以使用:
<?php
$one = 200;
$two = 100;
function demo()
demo ();
?>
綜述:在函式外宣告的變數稱為全域性變數,全域性變數在函式內不能被訪問,這就是「能見度」。
如果要在函式內使用全域性變數需要使用變通的方法:
1.第一種,使用$globals陣列,這個陣列儲存了所有全域性變數,如果使用全域性變數$a,可以在函式內使用$globals['a']
2.在函式內用關鍵字global宣告乙個變數是全域性變數,如果要使用全域性變數$a,可以在函式內寫一句global $a;注意,這句是要單獨成行,使用這一句之後,如果函式內另外定義了變數$a,則忽略函式內定義的$a,如果在多個函式內使用全域性變數$a,則每個函式都要寫global $a;
靜態變數
如果在函式中 unset()乙個靜態變數,則 unset()將銷毀此變數及其所有的引用。
<?php
function foo()
foo();
foo();
foo();
?>
上邊的例子將輸出:
靜態變數只存在於函式作用域內,也就是說,靜態變數只存活在棧中。一般的函式內變數在函式結束後會釋放,比如區域性變數,但是靜態變數卻不會。就是說,下次再呼叫這個函式的時候,該變數的值會保留下來。
靜態變數是指用static宣告的變數,這種變數與區域性變數的區別是,當靜態變數離開了它的作用範圍後,它的值不會自動消亡,而是繼續存在,當下次再用到它的時候,可以保留最近一次的值。
超全域性變數
超全域性變數是在全部作用域中始終可用的內建變數
php 中的許多預定義變數都是「超全域性的」,這意味著它們在乙個指令碼的全部作用域中都可用。在函式或方法中無需執行 global $variable;來訪問它們。
這些超全域性變數是:
常量php中使用define()函式定義常量。
define(常量名,常量值),常量命名方法與變數命名相同,以字母或下劃線開頭,按照慣例常量名字全部大寫,不同的單詞用下劃線隔開,以區分與變數不同。
魔術常量
__line__ __file__ __function__ __class__
isset():檢查變數是否定義。
defined():檢查常量是否定義
2.php處理表單
簡單例子:
html部分:
php部分:
你好,<?php echo htmlspecialchars($_post['name']); ?>。
你 <?php echo (int)$_post['age']; ?> 歲了。
htmlspecialchars() 使得 html 之中的特殊字元被正確的編碼,從而不會被使用者在頁面注入 html 標籤或者 j**ascript**。例如 age 字段,我們明確知道他是乙個數值,因此我們將它轉換 為乙個 整形值(integer) 來自動的消除任何不必要的字元。
3.php的型別
php 支援8種基本的資料型別。
四種標量型別:
boolean (布林型)
integer (整型)
float (浮點型, 也稱作 double)
string (字串)
兩種復合型別:
array (陣列)
object (物件)
class hdw}*/
$b = 3.1;
$c = true;
var_dump($b,$c);
/* 輸出:
float(3.1)
bool(true)
*/?>
如果只是想得到乙個易讀懂的型別的表達方式用於除錯,用 gettype()。要檢視某個型別,不要用 gettype(),而用 is_type 函式。
4.強制轉換型別
如果要將乙個變數強制轉換為某型別,可以對其使用強制轉換或者 settype() 函式。
強制轉換:
<?php
$foo = 10; // $foo is an integer
$bar = (boolean) $foo; // $bar is a boolean
?>
settype():
<?php
$foo = "5bar"; // string
$bar = true; // boolean
settype($foo, "integer"); // $foo 現在是 5 (integer)
settype($bar, "string"); // $bar 現在是 "1" (string)
?>
5.變數引用
在 php 中引用意味著用不同的名字訪問同乙個變數內容。這並不像 c 的指標,替代的是,引用是符號表別名。
php 的引用允許用兩個變數來指向同乙個內容。意思是,當這樣做時:
<?php $a =& $b;?> 這意味著 $a 和 $b 指向了同乙個變數。
6.php變數名區分大小寫。函式名,類名不區分
7.require()和 include()
的區別require()和 include()幾乎完全一樣,除了處理失敗的方式不同之外。
include() 產生乙個warning;而require()則導致乙個fatal error。換句話說,如果想在丟失檔案時停止處理頁面,那就別猶豫了,用require()吧。include()就不是這樣,指令碼會繼續執行。同時也要確認設定了合適的include_path。
區分大小寫
這個規則會與以下各個元素匹配 這些元素不能在同乙個文件中同時出現,因為它們都有相同的 id 值 id mostimportant this is important 親自試一試 請注意,類選擇器和 id 選擇器可能是區分大小寫的。這取決於文件的語言。html 和 xhtml 將類和 id 值定義為區...
區分大小寫
設定大sql指令碼大小寫敏感 use master go alter database databasename collate chinese prc cs ai go設定參考值 ci ai 不區分大小寫 不區分重音 不區分假名型別 不區分寬度 ci ai ws 不區分大小寫 不區分重音 不區分假...
查詢區分大小寫
在sql2000和7.0的查詢語句中,區分大寫的查詢方法 sql2000,就用下面的方法.就是在欄位名後加 collate chinese prc cs as ws 區分大小寫 全半形字元的方法 測試資料 create table 表 fd varchar 10 insert into 表 sele...