Skip to content

林豬豬

個人文章或筆記

Menu
  • 首頁
  • PHP
  • MariaDB
  • Mac
  • Windows
  • Java Servlet
  • 軟體設計
  • 其他
Menu

關於PHP變數、運算子、條件式

Posted on 2023 年 3 月 1 日

變數:
    變數型態:
        整數、浮點數、字串、布林、陣列、物件、NULL、resource、callable
    變數轉義:
        $totalqty = 0;
        $totalamount = (float)$totalqty;
    可變變數:
    
    ${$today} 變成 $sunday 最後顯示 星期日
    常數:
        define(‘APPLE’,25);//呼叫常數APPLE輸出25
        一但設定,就無法在腳本的其他地方修改。
        phpinfo();可查看所有常數

變數範圍:
    區域變數:
        $shop_name
    全域變數:
        demo0411.php宣告
        function welcome()
        {
            global $shop_name;
            echo “您好,歡迎光臨{$shop_name}!”;
        }
        demo0412.php使用
        function welcome()
        {
            echo “您好,歡迎光臨{$GLOBAL[‘shop_name’]}!”;
        }
    超級全域變數:
        $GLOBALS可以查看所有全域變數
        $_SERVER可以輸入特定的變數取得網頁伺服器的一些設定值
        $_GET接收GET傳來的變數
        $_POST接收POST傳來的變數
        $_COOKIE從cookie中取得變數
        $_REQUEST從GET,POST,COOKIE中取得變數
        $_FILES若表單有使用檔案表單元件,會傳來一組$_FILES變數
        $_ENV不常用會取得該主機的環境變數
        $_SESSION和cookie一樣,只是存放在伺服器中,比較安全,可以存放身份辨識資料。
    this
        $this->name
        可指向類變數

運算子
    +加、-減、*乘、/除、%餘
    $c = $a.$b字串串接
    複合運算子:
        $a += $b相加設為$a、-=減、/=除、%=餘、.=字串串接
    參考運算子:
        $a = 5;
        $b = 7;
        $b = &$a;
        $a = 7;//此時$a $b皆指向記憶體的同一個區塊,值為7。
        unset($a);解除共用記憶體
        與指標不同,參考像別名,共用同一個記憶體區塊,當$a改變$b也會改變。
比較運算子
    根據比較結果回傳boolean布林值(true,false)。
    注意:=是指派而非比較。
    相等==:測試兩個值是否相等
    不相等!=、<>
    相同===:兩個值相等外,型態也得相同。
    不相同!==
    小於<
   大於>
    小於等於<=
   大於等於>=
    飛船運算子(PHP 7up)<=>
        小於回傳-1,等於回傳0,大於回傳1
邏輯運算子
    !:NOT如果答案是否則回傳真,是真則回傳否。
    &&、and:AND都是真則回傳真,其餘搭配回傳否。
    ||、or:OR如果有一個為真,則回傳真。
    xor:Not OR其中一個為真回傳真,兩者都是真或都是否則回傳否。
    (注意:英文比符號順序低。)
位元運算子(較少用到 目前對我來說意義不明XD)
    &位元AND
    |位元OR
    ~位元NOT
    ^位元XOR
    <<左移 $a左移$b個位元
   >>右移 $a右移$a個位元
三元運算子
    $a==$b?$c:$d;
    $a ?: 10;(是null回傳10。等效empty($a))(PHP 5.3 up)
合併運算子(PHP 7 up)(等校isset($a))
    $a = ‘小美’;
    $name = $a ?? ‘沒有這個人’;
    echo $name; //有則顯示小美,註解掉則顯示沒有這個人
錯誤抑制運算子$a = @(57/0);可抑制錯誤。可啟用track_errors將錯誤訊息放在全域變數$php_errormsg裏。
執行運算子 可執行系統指令例如 $out = ls -la;
陣列運算子:
    聯集$a+$b
    相等$a == $b
    相同$a === $b
    不相等 $a != $b , $a <> $b
    不相同$a !== $b
型態運算子:檢查物件是否為某個類別的實例。

變數處理函式:
    settype($a,’float’);給予一個變數並設定為float可更改為其他變數型態(float會回報為double)
    gettype($a);取得變數型態
    其他函式:
        is_array($a)檢查是否為陣列
        is_double($a)、is_float($a)、is_real($a)檢查是否為浮點數
        is_long($a)、is_int($a)、is_integer($a)檢查是否為整數
        is_string()檢查變數是否為字串
        is_bool()檢查變數是否為布林值
        is_object()檢查變數是否為物件
        is_resource()檢查變數是否為資源?
        is_null()檢查變數是否為null
        is_scalar()檢查變數是不是純量(integer boolean string float)
        is_numeric()檢查變數是否為任何形式的數字或數字字串
        is_callable()檢查變數是不是有效函式的名稱
    測試變數狀態
        isset($a)如果變數存在則為true,可用逗號分格變數,皆存在則為true其餘為false
        unset($a)來清除不存在的變數
        empty($a)檢查變數是否存在且非空非零值
    重新解釋變數:變數轉義
        $a = intval(42, 8);將各種變數轉換為int
        $a = floatval(‘The122.34343’);將各種變數轉換為浮點數
        $a = strval($b);將各種變數轉換為字串

條件式
    1.if
        if($a == $b){
            [條件成立執行內容]
        }elseif($c == $d){
            [條件成立執行內容]
        }else{
            [條件皆不成立執行內容]
        }
    2.switch
        switch($a){
            case “a”:
                //do something…
                break;//離開否則會接下去
            case “b”:
                //do something…
            case “c”:
                //do something…
            default:
                //如果都沒有do something…
                break;
        }
    3.while迴圈(重複執行到滿足條件)
        while($a <= 5){
            //do something…
            $a++;
        }
    4.for,foreach迴圈
        for($a = 1;$a<=5;$a++){
            //do something…
        }
        $data = [‘小黑’,’小白’,’大黑’,’大白’,’多多’,’小歐’,];
        foreach($data as $itrm){
            echo $item . “<br>”;
        }
    5.do…while迴圈(最少執行一次 迴圈)
        do{
            //do something…
        }while($a <= 5);
跳出控制結構
    return;跳出函式
    break;跳出迴圈
    exit;停止整個PHP腳本
其他控制結構語法
    if($a == $b):
        //do something…
        //do something2…
    endif;
    將大括號換為:並且結束與換成end系列,其他還有endswitch;endwhile;endfor;endforeach;
使用declare⚠️不懂⚠️
    用途是設定程式區塊的執行指令?
    有ticks(用來插入指令)與encoding(用來設定腳本的編碼)

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

彙整

  • 2024 年 1 月
  • 2023 年 11 月
  • 2023 年 9 月
  • 2023 年 6 月
  • 2023 年 5 月
  • 2023 年 3 月
  • 2023 年 2 月
  • 2022 年 10 月
  • 2022 年 9 月
  • 2022 年 8 月
  • 2022 年 6 月

近期文章

  • 資料控制語言DLC
  • 資料定義語言DDL
  • Laravel身份認證與Passport身分驗證套件
  • RollBack回到交易機制啟動前的狀態
  • 刪除DELETE

近期留言

  1. 「WordPress 示範留言者」於〈網站第一篇文章〉發佈留言

豬豬説:那些你所逃避的,會在你需要的時候回來賞你一巴掌。

  • GitHub
  • Instagram
  • Mail
©2025 林豬豬 | Design: Newspaperly WordPress Theme