php學習筆記(一)基礎部分

php學習至今一年有餘,筆記積累挺多的,也挺雜的,寫篇文章整理一下吧。php

php基礎部分

請輸入圖片描述

PHP 輸出文本的基礎指令:echoprintlinux

echo和print的區別

echo是PHP語句, printprint_r是函數,語句沒有返回值,函數能夠有返回值(即使沒有用)express

echo 輸出一個或者多個字符串。
print 只能打印出簡單類型變量的值(如int,string)
print_r 能夠打印出複雜類型變量的值(如數組,對象)segmentfault

var_dump和print_r的區別

var_dump返回表達式的類型和值,而print_r僅返回結果,相比調試代碼使用var_dump更便於閱讀。數組


變量

變量用於存儲值,好比數字、文本字符串或數組。PHP 中的全部變量都是以 $ 符號開始的。
PHP 變量名稱對大小寫敏感!函數

PHP 有三種不一樣的變量做用域:學習

local(局部)
global(全局)
static(靜態)

函數以外聲明的變量擁有 Global 做用域,只能在函數之外進行訪問。ui

函數內部聲明的變量擁有 LOCAL 做用域,只能在函數內部進行訪問。this

global 關鍵詞用於訪問函數內的全局變量。spa

PHP static 關鍵詞

一般,當函數完成/執行後,會刪除全部變量。不過,有時我須要不刪除某個局部變量。實現這一點須要更進一步的工做。

要完成這一點,請在您首次聲明變量時使用 static 關鍵詞:

<?php    
function myTest() {
   static $x=-1;
   echo $x;
   $x--;
}

myTest();//-1
echo "<br>";
myTest();//-2
echo "<br>";
myTest();//-3
?>

php類型

php類型:**PHP 支持八種原始類型。**

請輸入圖片描述

布爾型

要指定一個布爾值,使用關鍵字 TRUE 或 FALSE。兩個都是大小寫不敏感的。

整型

咱們可使用(int)來將小數強制類型轉換成整數。

<?php

    var_dump((int)(26/3));//int(8)

?>

數組

php中有三種數組:

索引數組:就是下標是順序整數做爲做爲索引(好比第幾排第幾列)$class[5]
關聯數組:就是下標是字符串做爲索引(好比名字)$class2["zhangsan"]
多維數組 - 包含一個或多個數組的數組

下標要嘛是整數,要麼是字符串。

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

// 自 PHP 5.4 起
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>

數組單元能夠經過 array[key] 語法來訪問。
Note: 這並不意味着老是給鍵名加上引號。用不着給鍵名爲常量或變量的加上引號,不然會使 PHP 不能解析它們。

數組運算符

例子 名稱 結果
$a + $b 聯合 $a 和 $b 的聯合
$a == $b 相等 若是 $a 和 $b 具備相同的鍵/值對則爲 TRUE
$a === $b 全等 若是 $a 和 $b 具備相同的鍵/值對而且順序和類型都相同則爲 TRUE
$a != $b 不等 若是 $a 不等於 $b 則爲 TRUE
$a <> $b 不等 若是 $a 不等於 $b 則爲 TRUE
$a !== $b 不全等 若是 $a 不全等於 $b 則爲 TRUE

+ 運算符把右邊的數組元素附加到左邊的數組後面,兩個數組中都有的鍵名,則只用左邊數組中的,右邊的被忽略。

對象

要初始化一個對象,用 new 語句將對象實例到一個變量中。

經常使用函數

strlen() 函數用於計算字符串的長度。
strpos() 函數用於在字符串內檢索一段字符串或一個字符。

常量

能夠用 define() 函數來定義常量。一個常量一旦被定義,就不能再改變或者取消定義。
經常使用的魔術常量:

請輸入圖片描述

定義常量例子:

<?php
define("poems" , "Homeric epic");
echo poems ;//outputs "Homeric epic" 
?>

php字符串運算符

在 PHP 中,只有一個字符串運算符。
並置運算符 (.) 用於把兩個字符串值鏈接起來。如:echo "a= ".$a."<br>";
左邊將字符串文字"a="與變量$a的值鏈接,第二處是與換行符"<br>"鏈接

php函數

函數只有在被調用時纔會被執行,這點和js是同樣的,一樣,函數定義也是以function關鍵字開頭的。

<?php
    function sum($x,$y){
        $z=$x + $y;
        return $z;
    }
    echo "-2+10= ".sum(-2,10);//outputs "-2+10=8"
?>

當沒有return語句時,以上將會變成"-2+10=";


流程控制

在這裏,只講下foreach語句。

foreach語句遍歷輸出數組:
語法:

foreach (array_expression as $value){ statement};
foreach (array_expression as $key => $value){ statement};

參數array_expression是指定要遍歷的數組,$value是數組的值

<?php
     $actors [0] ="Marry";
     $actors [1] ="Lorry";
     $actors [2] = "mike";

     foreach ($actors as $values){
     echo "Name:$values<br>"; 
}
?>

以上代碼將輸出:
Name:Marry
Name:Lorry
Name:mike

兩個重要的魔術方法

1. __set( )方法:這個方法用來爲私有成員屬性設置值的,有兩個參數,第一個參數爲你
    要爲設置值的屬性名,第二個參數是要給屬性設置的值,沒有返回值。

        2. __get()方法:這個方法用來獲取私有成員屬性值的,有一個參數,參數傳入你要獲取的
成員屬性的名稱,返回獲取的屬性值,這個方法不用咱們手工的去調用

php中方法不區分大小寫

require(dirname(__FILE__).'/global.php'); //引入全局文件
require(dirname(__FILE__).'/config.ini.php'); //引入基本配置文件

對象運算符和雙冒號運算符

在類的成員方法裏面,能夠用 ->(對象運算符):$this->property(其中 property 是該屬性名)這種方式來訪問非靜態屬性。
靜態屬性則是用 ::(雙冒號):self::$property 來訪問。


=>和->

=>數組成員訪問符號,->對象成員訪問符號;
$this->$name=$value:將當前類的name變量的值設爲$value;
$this表明了類自己,->是訪問其類成員的操做符
雙冒號運算符(::)類名::靜態屬性/方法
::」用來調用類中靜態的屬性和方法

數組

<?php
    //array數組
    $users = array('phone','computer','dos','linux');
    echo $users;//只會打印出數據類型Array
    print_r($users);//Array ( [0] => phone [1] => computer [2] => dos [3] => linux )

    $numbers = range(1,5);//建立一個包含指定範圍的數組
    print_r($numbers);//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
    print_r(true);//1
    var_dump(false);//bool(false)

//print_r能夠把字符串和數字簡單地打印出來,數組會以Array開頭並已鍵值形式表示,print_r輸出布爾值和null的結果沒有意義,所以用var_dump更合適

//經過循環來顯示數組裏全部的值
    for($i = 0 ;$i < 5;$i++){
        echo $users[$i];
        echo '<br/>';
    }

//經過count/sizeof統計數組中單元數目或對象中的屬性個數

    for($i = 0; $i < count($users);$i++){
        echo $users[$i];
        echo '<br/>';
    }
//還能夠經過foreach循環來遍歷數組,這種好處在於不須要考慮key
    foreach($users as $value){
        echo $value.'<br/>';//點號爲字符串鏈接符號
    }
//foreach循環遍歷 $key => $value;$key和$value是變量名,能夠自行設置
    foreach($users as $key => $value){
        echo $key.'<br/>';//輸出鍵
    }
?>
相關文章
相關標籤/搜索