PHP-入門

字符串

1. 單引號聲明 和雙引號聲明的區(qū)別
  • 雙引號解析變量,單引號不解析
  • 在雙引號里面插入變量,變量后面如果有中文或英文字符,他會把這個字符和變量拼接起來,視為一整個變量.一定要在變量的后面接上特殊字符,例如空格分開
  • 在雙引號里面插變量的時候,后面不想有空格,可以拿大括號將變量包起來
  • 雙引號解析轉(zhuǎn)義字符,單引號不解析
  • 單引號的效率高于雙引號,盡可能使用單引號
  • 雙引號和單引號可以互插,雙引號中插入單引號,單引號中插入變量,這個變量會被解析
  • 我們將定界符聲明字符串視為雙引號一樣的功能來看.
    <?php
        $name = 'siva';
        $test = "$name 名字會出現(xiàn)嗎?";  
        $test2 = '$name 名字會出現(xiàn)嗎?';  
        $test3 = "{$name}名字會出現(xiàn)嗎?";
        $test4 = "'$name'名字會出現(xiàn)嗎?";
        echo $test;  // siva 名字會出現(xiàn)嗎?
        echo $test2;  // $name 名字會出現(xiàn)嗎?
        echo $test3;  //siva名字會出現(xiàn)嗎?
        echo $test4;  //'siva'名字會出現(xiàn)嗎?
    ?>
2. 字界符聲明
  • 在變量后面的等號后寫三個小于號(<<<)
  • 在<<<后寫字符(建議英文大寫字符)
  • 換行寫上你任意想寫的字符
  • 寫完后,頂行,在行最開始處,寫上<<<后面的字符和分號
    <?php
        $test = <<< ABC
            如果
            <b>你有</b>
            <h2>哈哈哈</h2>
        ABC;
    ?>
3. 字符串鏈接
    <?php 
        $a = 'hello';
        $name = ' siva';
        $plat = '簡書';
        echo $a . $name . '!歡迎來到' . $plat  // hello siva!歡迎來到簡書
     ?>
4. strlen()
  • 返回字符串的長度
  • 在utf-8下 strlen()把中文字符算成3個字節(jié),英文,空格,符號占1個;
    <?php
        $name = '歡迎你!';
        echo strlen($name) ; //10
        echo strlen('hi bye!'); // 7
    ?>
5. strpos()
  • 在字符串內(nèi)查找一個字符或一段指定的文本.
  • 若在字符串中找到匹配,該函數(shù)會返回第一個匹配的字符位置,如果未找到匹配 返回false
    <?php
        echo strpos( 'welcome','l'); //2
        echo strpos( '我的世界','世'); //6
    ?>
6.常量
  • 常量是單個值的標識符,在腳本中無法改變該值
  • 有效的常量名以字符或者下劃線開頭(常量名稱前面沒有$符號)
  • 常量名可以小寫,通常用大寫
  • 常量是貫穿整個腳本,是自動全局的.
  • 設置PHP常量
    • 使用define()函數(shù)
    • 首個參數(shù)定義常量的名稱
    • 第二個參數(shù)定義常量的值
    • 第三個參數(shù)可選,規(guī)定常量名是否對大小寫敏感.默認false
      <?php
          define('STATICSTR','welcome!');
          echo STATICSTR;  // welcome!
          echo staticstr; //staticstr!
          
          define('STATICSTRS','welcome!',true);
          echo STATICSTRS; //welcome!
          echo staticstrs; // welcome!
      ?>
    
  • 常量默認是全局變量,可以在整個運行的腳本的任何地方使用
      <?php
        header('Content-type:text/html;charset=utf-8');
        define('STATICSTR','你好');
        function test(){
            echo STATICSTR;
        }
        test();   // 你好
    ?>
    
7.字符串-- startsWith

判斷字符串是否為指定元素開頭

    let str = 'https://www.qingxiaoyun.com'
    if(str.startsWith('https://')){
        console.log('加密地址')
    }else if(str.startsWith('git://')){
        console.log('git地址')
    }else if(str.startsWith('svn://')){
        console.log('svn地址')
    }
    // 加密地址
8.字符串-- endsWith

判斷字符串是否為指定元素結尾

    let str = '1.txt';
    if(str.endsWith('.txt')){
        console.log('文本文件')
    }else if(str.endsWith('.png')){
        console.log('png圖片')
    }
    // 文本文件
9.字符串模板
    let name = `siva`
    let str = `歡迎您!${a}` //歡迎您!siva"
    let title = '我是一個標題!'
    let tmp = `
        <h1>${title}</h1>
        <p>我是一個副
        標題</p>
    `
    //"
    //  <h1>我是一個標題!</h1>
    //  <p>我是一個副
    //  標題</p>
    //"

變量

1.可變變量
    $name = 'siva';
    $siva = '24';
    echo $$name;  // 24
2.超全局變量
定義
  • PHP中的許多預定義變量都是超全局的,這意味著他們在一個腳本的全部作用域中都可用.在函數(shù)或者方法中無需執(zhí)行global
    $u = $_GET['uername'];  //get方法
    $u2 = $_POST['username']; // post方法
    // 可以獲取表單中 <input type="text" name="username" />的值
    $_COOKIE //得到會話控制中cookie傳值
    $_SESSION //得到會話控制中session傳值
    $_FILES //得到文件上傳的結果
    $_REQUEST //既能得到get傳值結果,又能得到post傳值結果
$GLOBALS
  • $GLOBAL 是一個包含了全部變量的全局組合數(shù)組.變量的名字就是數(shù)組的鍵.
    <?php
    $x = 5;
    $y = 6;
    function test(){
        $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
    }
    test();
    echo $z; //11
    ?>
$_REQUEST
  • 當用戶點擊提交按鈕時,可以用$_REQUEST收集表單中的input字段數(shù)據(jù)
    <HTML>
        <body>
            <form methods="post" action="<?php echo $_SERVER['PHP_SELF'];?>"
                Name:<input type="text" name="name"/>
                <input type="submit">
            </form>

            <?php
                $name = $_REQUEST['name'];
                echo $name;
            ?>
        </body>
    </HTML>
3.環(huán)境變量
  • 環(huán)境變量主要用的是$_SERVER$_ENV兩個,$_ENV逐漸被廢棄
  • 一些常用的環(huán)境變量
    $_SERVER["REQUEST_METHOD"]  //請求當前php頁面的方法
    $_SERVER["REQUEST_URL"]  //請求的url
    $_SERVER["REQUEST_SOFTWARE"]  //用的哪一種服務器
    $_SERVER["REMOTE_ADDR"]  //客戶的IP地址
    $_SERVER["SERVER_ADDR"]  //當前服務器的IP地址
    $_SERVER["SCRIPT_FILENAME"]  //請求文件的路徑
    $_SERVER["HTTP_USER_AGENT"]  //當前訪問這個網(wǎng)址的電腦和瀏覽器的情況
    $_SERVER["HTTP_REFERER"]  //上級來源(用戶從哪個地址進入當前網(wǎng)頁)
    $_SERVER["REQUEST_TIME"]  //當前的時間
4.變量引用
    $test = 5;
    $test2 = $test;
    $test2 = 6;
    echo $test2; //6
    echo $test; //5
    $test = 5 ;
    $test2 = &$test;
    $test2 = 6;
    echo $test2; //6
    echo $test; //6

變量前加上&符號,把變量指向同一個存值空間,也就是第二個例子里,$test變化的話,$test2就會變化,$test2變化的話,$test也會變.

    $foo = 100;
    function demo(&$n){
        $n = 10;
        return $n + $n;
    }
    echo demo($foo).'<br/>'; //20
    echo $foo; // 10

調(diào)用demo的時候,讓$foo$n指向了同一個存儲區(qū)域,$n變化的時候,$foo的值也發(fā)生變化.

數(shù)組

1.數(shù)組的長度
  • count()
    $name = ['siva','lara','alex'];
    echo count($name); // 3
2.數(shù)組排序 sort()--升序 / rsort() --降序
  • sort一般是用來排序數(shù)字索引數(shù)組的,如果關聯(lián)數(shù)組通過sort排序,則鍵值會丟失
    <?php
        $x = [100,3,9,k,a,A];
        $y = [a => nn, b => cc , c => aa];
        sort($x);sort($y);
        var_dump($x); // [A,a,k,3,9,100]
        var_dump($y); // [aa,cc,nn] 索引變成數(shù)字
     ?>
3.關聯(lián)數(shù)組排序 asort() -- 升序 / arsort() -- 降序
    <?php
        $y = [a => nn, b => cc , c => aa];
        asort($y);
        var_dump($y); // [c => aa , b => cc , a => nn]
    ?>
4.對鍵值排序 ksort() -- 升序 / krsort() -- 降序
    <?php
        $y = [b => nn, c => cc , a => aa];
        ksort($y);
        var_dump($y); // [a => aa , b => nn , c => cc]
    ?>

echo && print

1. 區(qū)別
  • echo -- 可以輸出一個或多個字符串;
  • print -- 只允許輸出一個字符串,返回值為1;
  • echo輸出的速度比print快.echo沒有返回值.
2.echo

echo是一個語言結構,使用的時候可以加括號,也可以不加;

echo xxx;
echo(xxx);

數(shù)據(jù)類型

  • Interger(整型);
  • String(字符串);
  • Float(浮點型);
  • Boolean(布爾型);
  • Array(數(shù)組);
  • Object(對象);
  • NULL(空值);
1.查看數(shù)據(jù)類型
  • gettype() -- 可以獲得變量的類型
  • var)dump() -- 可以獲得變量的類型,長度和值
      $str = 'haha';
      $type1 = gettype($str); //string
      $float = 20.2;
      $type2 = gettype($float); // double
    
2.整型(int)
  • 整數(shù)規(guī)則
    • 整數(shù)必須有至少一個數(shù)字
    • 整數(shù)不能包含逗號或空格
    • 整數(shù)不能有小數(shù)點
    • 整數(shù)正負均可
    • 可以用三種格式規(guī)定整數(shù):十進制,十六進制,八進制
3.字符串(String)
  • 聲明字符串

    • 用單引號聲明
    • 用雙引號聲明
    • 用字界符聲明(需要輸入非常大段的字符串時使用)
  • 單引號聲明

    • $name = 'siva'
  • 雙引號聲明

    • $name = "siva"
  • 字界符聲明

    • 在變量后面的等號寫三個小于號 <<<;
    • 然后在 <<< 后面寫上字符
    • 然后換行寫上任意想寫的字符
    • 寫完后,頂行.在行的最開始處,寫上<<< 后面的字符和分號.
      <?php
      $name = <<<ABC
      我是
          用
      定界符
          定義的
      字符串
      ABC;  
      ?>
    
4.浮點型(float/double)
5.布爾型(bool -- true/false)
6.數(shù)組(Array)
$names = array('siva','lara','alex');
$otherName = ['siva','lara','alex'];
7.對象(Object)
  • 在php中,必須明確的尚明對象
  • 必須先聲明對象的類,之后再細說
8.NULL
  • 通過變量賦值,明確的指定變量為NULL;
  • 沒有聲明變量 或者聲明變量但沒有賦值
  • 使用函數(shù)unset()將變量銷毀掉
    <?php
    $a = null;
    $b;
    $c = 'hh';
    unset($b);
    var_dump($a);  // NULL
    var_dump($b);   // NULL
    var_dump($c);   // NULL
    var_dump($d);   // NULL
    ?>
9.empty()
  • 變量的值如果為false或者null,返回true
10.isset()
  • 可以向括號中傳入一個或者多個變量,其中只要有一個變量為null,則返回false,否則,返回true;
      <?php
          $a = 0;
          $b = false;
          $c = null;
          isset($a,$b,$c);  //false
          isset($a,$b); // true
      ?>
    
      $test1 = '哈哈哈';
      $test2 = 20;
      $test3 = 0;
      $test4 = null;
      $test5 = false;
    
      $result = isset($test1,$test2,$test3,$test4,$test5); // false
      $result2 = isset($test1,$test2,$test3,$test5); // true
    
11.unset()
  • 銷毀變量
11. 判斷數(shù)據(jù)類型
  • is_int 判斷是否為整型
  • is_bool 判斷是否為布爾
  • is_float 判斷是否為浮點
  • is_string 判斷是否為字符串
  • is_array 判斷是否為數(shù)組
  • is_object 判斷是否為對象
  • is_null 判斷是否為空
  • is_resource 判斷是否為資源
  • is_scalar 是否為標量
  • is_numeric 是否為數(shù)值類型
  • is_callable 是否為函數(shù)

函數(shù)

1. 內(nèi)部函數(shù)
    function  outer(){
        echo  '我是一個函數(shù) outer';
        function  inner(){
            echo  '我是outer函數(shù)的內(nèi)部函數(shù)inner';
        }
    }
    inner();  //這個時候inner函數(shù)還不存在.直接調(diào)用會報錯
    echo  '<hr/>';
    outer(); //現(xiàn)在可以調(diào)用outer函數(shù),outer執(zhí)行后,inner函數(shù)就變?yōu)橐讯x的函數(shù)
    echo  '<hr/>';
    inner(); //現(xiàn)在已經(jīng)可以調(diào)用
    echo  '<hr/>';
    outer(); //重復調(diào)用會報錯
    echo  '<hr/>';

如果不調(diào)用outer函數(shù),則無法執(zhí)行innner()函數(shù)
outer函數(shù)調(diào)用兩次會報錯

2.函數(shù)作用域
  • 函數(shù)定義時,后括號里面接的變量是形式上的參數(shù)(形參),與函數(shù)體外的變量沒有任何關系.僅僅是在函數(shù)內(nèi)部執(zhí)行
  • 函數(shù)內(nèi)部聲明的變量也與函數(shù)外的變量沒關系
  • 如果想把函數(shù)體內(nèi)的變量在函數(shù)體外用,或者想把函數(shù)體外的變量拿到函數(shù)體內(nèi)用,這個時候就要用到超全局變量.
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 一、echo語句 1.格式 echo是PHP中的輸出語句,可以把字符串輸出(字符串用雙引號括起來,echo關鍵字與...
    ISwiftUI閱讀 548評論 0 1
  • 1、了解php 1.HTML中的action屬性指定跳轉(zhuǎn)的URL;method屬性規(guī)定數(shù)據(jù)發(fā)送的方法,其中有get...
    ManZb閱讀 217評論 0 0
  • 上一周,連續(xù)刮大風,幾乎所有的參圈,海參狀態(tài)都比之前差了很多,主要是刮大風期間,海參為了抵御不良環(huán)境,消耗了...
    尋夢2019ll閱讀 1,454評論 0 0
  • 早上,老公送孩子去上學了,我一邊悠悠的吃著早餐,一邊聽著音樂刷著微信消息。又是美好的一天。 在我們姐妹群里,不知誰...
    浮著的萍閱讀 389評論 0 0
  • 昨日讀了美好家園一篇《已經(jīng)荒廢10年的老屋,她竟然只花了1萬元,就改變成女人夢想的花園!》瞬間拔草了…… 生活不只...
    獨憐幽竹閱讀 328評論 1 7

友情鏈接更多精彩內(nèi)容