PHP:php知識小解

1、什麼是PHP?php

PHP 是一種建立動態交互性站點的服務器端腳本語言。
PHP 可以生成動態頁面內容。
PHP 可以建立、打開、讀取、寫入、刪除以及關閉服務器上的文件。
PHP 可以接收表單數據並處理。
PHP 可以發送並取回 cookies
PHP 可以添加、刪除、修改數據庫中的數據。
PHP 可以限制用戶訪問網站中的某些頁面。
PHP 可以對數據進行加密和解密。
....html

服務器端腳本語言包含:數據庫

PHP:開源、免費、應用普遍、入門簡單,WordPress、facebook等就是經過其開發的
Java.
net...apache

學習PHP必備環境一鍵搭建包:數組

XAMMP:https://www.apachefriends.org/download.html
phpstudy:http://www.phpstudy.net/瀏覽器

 

例如使用phpstudy這個包的截圖以下:服務器

  

 

通常狀況下,建立的php文件都放在WWW下或者WWW子目錄php下,而後在瀏覽器使用:http://127.0.0.1(或者localhost)/目標文件或者http://127.0.0.1(或者localhost)/php/目標文件進行運行便可cookie

PHP格式:函數

PHP 腳本以<?php 開頭,以 ?> 結尾,其文件的默認文件擴展名是.php,其語句以分號(;)結尾。post

 

2、php入門

php腳本的後面名爲.php,代碼放置在下面的括號裏面:

<?php
.......
?>

echo能夠打印信息,相似於printf

<?php
echo "hallo world";
?>

每條語句後面用分號";"結尾。

php支持三種註釋方式:

<?php
// 第一種

# 第二種

/*
這是
多行
註釋
*/
?>

在php中,函數、類、和關鍵詞的大小寫都是同一個東西:

<!DOCTYPE html>
<html>
<body>
  <?php
    ECHO "Hello World!<br>";
    echo "Hello World!<br>";
    Echo "Hello World!<br>";
  ?>
</body>
</html>

不過全部變量都對大小寫敏感,須要區分大小寫。

<?php
  $color="red";
  $Color="black";
  echo "my car is " . $color . "<br>";
  echo "my car is " . $Color . "<br>";
?>

上面的例子同時指出了變量定義以及字符串拼接的語法。

變量命名規則:

PHP 變量規則:
變量以 $ 符號開頭,其後是變量的名稱
變量名稱必須以字母或下劃線開頭
變量名稱不能以數字開頭
變量名稱只能包含字母數字字符和下劃線(A-z、0-9 以及 _)
變量名稱對大小寫敏感($y 與 $Y 是兩個不一樣的變量)

變量會在第一次賦值時被建立。無需聲明變量的類型。

變量會有三種不一樣的做用域:

PHP 有三種不一樣的變量做用域:
local(局部)
global(全局)
static(靜態)

函數以外聲明的變量擁有 Global 做用域,只能在函數之外進行訪問。
函數內部聲明的變量擁有 LOCAL 做用域,只能在函數內部進行訪問。
下面的例子測試了帶有局部和全局做用域的變量:

<?php
$x=5; // 全局做用域

function myTest() {
  $y=10; // 局部做用域
  echo "<p>測試函數內部的變量:</p>";
  echo "變量 x 是:$x";
  echo "<br>";
  echo "變量 y 是:$y";
} 

myTest();

echo "<p>測試函數以外的變量:</p>";
echo "變量 x 是:$x";
echo "<br>";
echo "變量 y 是:$y";
?>

運行結果:

測試函數內部的變量:

變量 x 是:
變量 y 是:10
測試函數以外的變量:

變量 x 是:5
變量 y 是:

比較奇怪的就是爲何全局變量不能在局部函數內訪問。

其實能夠訪問,不過須要global關鍵字的幫助:

global 關鍵詞用於訪問函數內的全局變量。
要作到這一點,請在(函數內部)變量前面使用 global 關鍵詞:
<?php
$x=5;
$y=10;

function myTest() {
  global $x,$y;
  $y=$x+$y;
}

myTest();
echo $y; // 輸出 15
?>

PHP 同時在名爲 $GLOBALS[index] 的數組中存儲了全部的全局變量。下標存有變量名。這個數組在函數內也能夠訪問,並可以用於直接更新全局變量。

<?php
$x=5;
$y=10;

function myTest() {
  $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
} 

myTest();
echo $y; // 輸出 15
?>

一般,當函數完成執行後,會刪除全部變量。不過,有時我須要不刪除某個局部變量。實現這一點須要static:

<?php

function myTest() {
  static $x=0;
  echo $x;
  $x++;
}

myTest();
myTest();
myTest();

?>

php中echo和print都能使用,二者的惟一區別是print返回1,echo沒有返回值。

strlen函數能夠返回字符串的長度。

strpos函數用來肯定另一個字符串的位置:

<?php
echo strpos("Hello world!","world");
?>

完整的string參考手冊.

使用define函數來定義常量:

<?php
define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;
?>

define函數還有第三個參數,用來指定是否大小寫敏感。

php的if-else語句和其餘語言大同小異,舉個例子:

<?php
$t=date("H");

if ($t<"10") {
  echo "Have a good morning!";
} elseif ($t<"20") {
  echo "Have a good day!";
} else {
  echo "Have a good night!";
}
?>

switch-case語句:

<?php
switch ($x)
{
case 1:
  echo "Number 1";
  break;
case 2:
  echo "Number 2";
  break;
case 3:
  echo "Number 3";
  break;
default:
  echo "No number between 1 and 3";
}
?>

while、for語句和其餘語言無差異,看看foreach吧:

<?php 
$colors = array("red","green","blue","yellow"); 

foreach ($colors as $value) {
  echo "$value <br>";
}
?>

php的真正力量來自於它的函數,它有1000個內置函數。

用戶定義的函數聲明以關單 "function" 開頭:

function functionName() {
  被執行的代碼;
}

舉個例子:

<?php
function writeMsg() {
  echo "Hello world!";
}

writeMsg(); // 調用函數
?>

// 含參數
<?php
function familyName($fname,$year) {
  echo "$fname Zhang. Born in $year <br>";
}

familyName("Li","1975");
familyName("Hong","1978");
familyName("Tao","1983");
?>

// 默認參數
<?php
function setHeight($minheight=50) {
  echo "The height is : $minheight <br>";
}

setHeight(350);
setHeight(); // 將使用默認值 50
setHeight(135);
setHeight(80);
?>

// 返回值
<?php
function sum($x,$y) {
  $z=$x+$y;
  return $z;
}

echo "5 + 10 = " . sum(5,10) . "<br>";
echo "7 + 13 = " . sum(7,13) . "<br>";
echo "2 + 4 = " . sum(2,4);
?>

在 PHP 中,有三種數組類型:

  • 索引數組 - 帶有數字索引的數組
  • 關聯數組 - 帶有指定鍵的數組
  • 多維數組 - 包含一個或多個數組的數組

索引數組:

$cars=array("Volvo","BMW","SAAB");
<?php
$cars=array("Volvo","BMW","SAAB");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>

// count
<?php
$cars=array("Volvo","BMW","SAAB");
echo count($cars);
?>

// 變量索引數組
<?php
$cars=array("Volvo","BMW","SAAB");
$arrlength=count($cars);

for($x=0;$x<$arrlength;$x++) {
  echo $cars[$x];
  echo "<br>";
}
?>

關聯數組:

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
或
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";

<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>

// 遍歷
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");

foreach($age as $x=>$x_value) {
  echo "Key=" . $x . ", Value=" . $x_value;
  echo "<br>";
}
?>

數組排序方法有下面這些:

sort() - 以升序對數組排序
rsort() - 以降序對數組排序
asort() - 根據值,以升序對關聯數組進行排序
ksort() - 根據鍵,以升序對關聯數組進行排序
arsort() - 根據值,以降序對關聯數組進行排序
krsort() - 根據鍵,以降序對關聯數組進行排序

比較難理解的是鍵值對排序。

<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
asort($age);
?>

<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
ksort($age);
?>

超全局變量,也就是預約義的全局變量,在哪裏都能用,有特殊含義:

$GLOBALS:引用全局做用域中可用的所有變量
$_SERVER:保存關於報頭、路徑和腳本位置的信息。
$_REQUEST:用於收集 HTML 表單提交的數據。
$_POST:用於收集提交 method="post" 的 HTML 表單後的表單數據。也經常使用於傳遞變量。
$_GET:$_GET 也可用於收集提交 HTML 表單 (method="get") 以後的表單數據。
$_FILES
$_ENV
$_COOKIE
$_SESSION

其餘內容能夠在表單處理中找到。

相關文章
相關標籤/搜索