1. 程式人生 > >【php】基礎用法

【php】基礎用法

php語言的第一篇文章
開始的感覺PHP語言跟shell指令碼有些相似,另外跟html語言也比較像。
一些區別:
1,開始與結束:
PHP程式碼的開始結束標誌為:

<?php  
*code*
?>

2,變數
php變數的定義與python類似,不需要宣告變數的型別,直接將資料賦值給變數即可。PHP的變數對大小敏感。
變數的定義和使用的時候是以“$”開頭,變數名的定義形式與C++一致。

<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>

變數的作用域
PHP 有三種不同的變數作用域:

  • local(區域性)
  • global(全域性)
  • static(靜態)

函式之外宣告的變數擁有 Global 作用域,只能在函式以外進行訪問。
函式內部宣告的變數擁有 LOCAL 作用域,只能在函式內部進行訪問。
如果想要在函式內部使用全域性變數需要先使用global宣告那個變數,例項程式碼如下:

<?php
$x=9;//全域性作用
$t=13;
function test_var(){
    $y=11;
    global $t; 
    echo "x=$x\n";
    echo "y=$y\n";
    echo "t=$t\n";
}
test_var();
echo "x=$x\n";
echo "y=$y\n";
echo "t=$t\n";
?>

結果為:

PHP Notice:  Undefined variable: x in /home/php/php-test-dir/test_php.php on line 16
x=
y=11
t=13
x=9
PHP Notice:  Undefined variable: y in /home/php-test-dir/test_php.php on line 24
y=
t=13

通常,當函式完成/執行後,會刪除所有變數。不過,有時我需要不刪除某個區域性變數。實現這一點需要更進一步的工作。
要完成這一點,請在您首次宣告變數時使用 static 關鍵詞:

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

2,輸出:
有兩種輸出 echo,print
echo 和 print 之間的差異:
echo - 能夠輸出一個以上的字串
print - 只能輸出一個字串,並始終返回 1
echo: 是一個語言結構,有無括號均可使用:echo 或 echo()。在echo中引用變數時和在linux指令碼中引用變數一樣直接使用即可。

echo "I'm about to learn PHP!\n";
echo "This", " string", " was", " made", " with parameters.";
echo "x=$x"

結果:

I'm about to learn PHP!
This string was made with parameters.
x=5

Print 的用法與 echo相似。

3,運算子
算術:±*/% 分別表示加減乘除和取餘;還有與“=”寫在一起的"+=", “-=”,"*=","/=","%=",用法跟C++的相同。還有跟C語言一樣的自增和自減的操作。
字串:
串聯 “.” ,將兩個字串連線在一起:
$txt1 = “Hello” $txt2 = $txt1 . " world!"

加"=“的串聯:$txt1 = “Hello” $txt1 .= " world!”

比較運算子,用於比較兩個數字或者是字串
“==” , “===”, “!=”, “<>”, “!==”, “>”, “<”, “>=”, “<=” 分別表示
等於,全等於,不等,不等,不全等,大於,小於,大於等於,小於等於。
其中全等“===”表示:$x === $y 如果 x y t r u e ! = = = x 等於 y,且它們型別相同,則返回 true。 不全等“!===”表示 :$x === $y 如果 $x 不等於 $y,或它們型別不相同,則返回 true

邏輯運算子:
and, or, xor, &&, ||, !
分別表示:與,或,異或,與,或,非;
其中xor 表示如果 $x 和 $y 有且僅有一個為 true,則返回 true

PHP陣列的運算子:
在這裡插入圖片描述

4,資料型別
NULL 值
特殊的 NULL 值表示變數無值。NULL 是資料型別 NULL 唯一可能的值。
NULL 值標示變數是否為空。也用於區分空字串與空值資料庫。

$a = 32;
echo "a=$a\n";
$a=null;

物件
物件是儲存資料和有關如何處理資料的資訊的資料型別。
在 PHP 中,必須明確地宣告物件。
首先我們必須宣告物件的類。對此,我們使用 class 關鍵詞。類是包含屬性和方法的結構。
然後我們在物件類中定義資料型別,然後在該類的例項中使用此資料型別:

<?php
class Car
{
  var $color;
  function Car($color="green") {
    $this->color = $color;
  }
  function what_color() {
    return $this->color;
  }
}
function print_vars($obj) {
   foreach (get_object_vars($obj) as $prop => $val) {
     echo "\t$prop = $val\n";
   }
}
// instantiate one object
$herbie = new Car("white");
// show herbie properties
echo "\herbie: Properties\n";
print_vars($herbie);
?>

結果:

herbie: Properties
 color = white

常量:
PHP 常量
常量是單個值的識別符號(名稱)。在指令碼中無法改變該值。
有效的常量名以字元或下劃線開頭(常量名稱前面沒有 $ 符號)。
註釋:與變數不同,常量貫穿整個指令碼是自動全域性的
如需設定常量,請使用 define() 函式 - 它使用三個引數:
首個引數定義常量的名稱
第二個引數定義常量的值
可選的第三個引數規定常量名是否對大小寫不敏感。預設是 false。
下例建立了一個對大小寫敏感的常量,值為 “Welcome to W3School.com.cn!”:

define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;

define("GREETING", "Welcome to W3School.com.cn!", true);
echo greeting;

5,字串函式
常用的函式:strlen() 函式返回字串的長度,以字元計。
strpos() 函式用於檢索字串內指定的字元或文字。
如果找到匹配,則會返回首個匹配的字元位置。如果未找到匹配,則將返回 FALSE。
更多:http://www.w3school.com.cn/php/php_ref_string.asp

6,if語句
在 PHP 中,我們可以使用以下條件語句:
if 語句 - 如果指定條件為真,則執行程式碼
if…else 語句 - 如果條件為 true,則執行程式碼;如果條件為 false,則執行另一端程式碼
if…elseif…else 語句 - 選擇若干段程式碼塊之一來執行
如下程式碼所示:

$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!";
}

7,迴圈語句:
php中的迴圈語句有while, do…while, for, foreach語句。
while, do…while, for跟C++的語句都相同;
著重說一下foreach:
foreach 迴圈只適用於陣列,並用於遍歷陣列中的每個鍵/值對。

foreach ($array as $value) {
  code to be executed;
}

每進行一次迴圈迭代,當前陣列元素的值就會被賦值給 $value 變數,並且陣列指標會逐一地移動,直到到達最後一個數組元素。
如下所示:

$color=array("red","green","blue");
foreach($color as $value){
    echo "$value\n";

結果是:

red
green
blue

8,函式
PHP 的真正力量來自它的函式:它擁有超過 1000 個內建的函式。
在 PHP 建立使用者定義函式:使用者定義的函式宣告以關單 “function” 開頭。
註釋:函式名對大小寫不敏感。函式名應該能夠反映函式所執行的任務。
如下所示:

function add_num($one=3,$two=7){
    $sum = $one + $two;
    return $sum;
}
echo(add_num());
echo(add_num(8,12));

函式add_num計算兩個數的和,有兩個引數,並給引數賦預設值。在呼叫的時候可以不傳入引數,也可以傳引數。

8,關聯陣列
關聯陣列是使用您分配給陣列的指定鍵的陣列。類似與python中的字典。
建立:

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

遍歷關聯陣列:

$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
foreach($age as $x=>$x_value) {
  echo "Key=" . $x . ", Value=" . $x_value;
}

結果:

Key=Bill, Value=35Key=Steve, Value=37Key=Peter, Value=43

9,註釋:
單行註釋:“//”,“#”;
多行註釋:“/* */”

10,指令碼的引用
require_once的使用方法
require_once 語句和 require 語句完全相同,唯一區別是 PHP 會檢查該檔案是否已經被包含過,如果是則不會再次包含。
如果已經定義了a.php以後,當在檔案b.php中要使用到a.php的類的時候,就可以再b.php開頭加上,require_once(a.php);來載入這個a.php,就相當於把a.php的檔案的程式碼複製到了b.php中。類似的方法還有requeire(),include(),include_once()其中帶_once字樣的方法都是宣告只加載一次。

a.php:
<?php
$a=123;
?>
b.php:
<?php
require_once("a.php");
?>
c.php:
<?php
require_once("b.php");
echo $a;
?>

執行

php c.php
>>123

<use的用法,可以將要使用的類的dir目錄放在use裡面,然後就可以在該指令碼中使用該dir下已經定義好的類了。
未完待續…
>