1.1 區域性變數
function f1()
f1();
echo $a;無法在函式外部獲取函式內部的值,所以這個$a是未定義
1.2全域性變數
全域性變數在函式內部預設無法訪問
$a=10;
function f1()
f1();
如果想要在函式內部獲取到函式外部的值,可以給$a設定global全域性變數
$b=10;
function f1()
f1();
還可以使用引用傳參的方式在函式內部使用全域性變數
$c=10;
//值傳遞
function f1($arg)
f1($c);
echo $c;
如果在函式的形參$arg前面的&去除,就是引用傳遞
$d=10;
function f1(&$arg)
f1($d);
echo $d;
1.3 靜態變數
在函式內部定義,作用於函式內部,使用static關鍵字定義
首先看下面**的輸出結果
function f1()
f1();//2
f1();//2
f1();//2
同學們都想的是234;但是當函式執行結束後,就會被從記憶體中清楚,等到下一次再次呼叫函式時,又從新宣告了。
想要解決這個問題,可以在變數前面加上static
function f1()
f1(); //2
f1(); //3
f1(); //4
也叫預定義變數,是php預先定義好的一些變數
所有超全域性變數有乙個特點,都是以$_開頭,且變數名成為大寫。
超全域性變數有很多,比如:
$globals — 引用全域性作用域中可用的全部變數
$_server 是乙個包含了諸如頭資訊(header)、路徑(path)、以及指令碼位置(script locations)等等資訊的陣列,這個陣列中的專案是由web伺服器建立的。
$_get通過 url 引數傳遞給當前指令碼的變數的陣列。
$_post和get方式一樣,但是get傳參是不是很安全,而且傳送的資料比較少
$_files檔案上傳
$_cookie 將資料儲存在客戶端
$_session與cookie相反,session是儲存在服務端的
r eq
uest
預設情況
下包含了
_request預設情況下包含了
reque
st預設
情況下包
含了_get,pos
t和
_post和
post和
_cookie的陣列
$_env通過環境方式傳遞給當前指令碼的變數的陣列。
將檔案由客戶端傳輸到伺服器
上傳分為兩種:
3.1.1 表單上傳
就是靠form和input,
3.1.2 ajax上傳
使用jqueryfileupload外掛程式
html頁面
<
!doctype html>
"en"
>
"utf-8"
>
"viewport" content=
"width=device-width, initial-scale=1.0"
>
"x-ua-compatible" content=
"ie=edge"
>
document
"" rel=
"stylesheet"
>
.upload
$('#fileupload'
).fileupload(
, //上傳完成之後的操作,顯示在img裡面
done: function
(e, data)})
;
php頁面
<?php
$file
=$_files
['file'];
// 獲取副檔名
$res
=pathinfo
($file
['name'])
;$exname
=$res
['extension'];
// 生成唯一的名字
$filename
=time()
.'.'
.$exname
;move_uploaded_file
($file
['tmp_name'],
'./upload/'
.$filename);
// 返回上傳成功後名稱
echo
json_encode([
'url'
=>
'upload/'
.$filename])
;
php基礎鞏固補充 變數篇
1.變數是用於儲存資訊的 容器 2.php 變數規則 以 符號開始,後面跟著變數的名稱 必須以字母或者下劃線字元開始 只能包含字母數字字元以及下劃線 a z 0 9 和 不能包含空格 區分大小寫的 y 和 y 是兩個不同的變數 3.php 語句和 php 變數都是區分大小寫的。4.當您賦乙個文字值給...
PHP之類補充
最終類與最終方法 如果父類中的方法被宣告為 final,則子類無法覆蓋該方法。如果乙個類被宣告為 final,則不能被繼承。final class a class a 抽象類與抽象方法 abstract class a class aextends a 介面 介面可以看作是抽象類的更高層面的抽象,可...
python基礎補充
import random print random.choice range 10 和from random import choice print choice range 10 第一種方法 將模組的名字設定為乙個隱含在名字空間裡的全域性變數,這樣就好像訪問全域性屬性那樣訪問choice函式 第...