2. PHP定界符、輸出、變量、進制轉換

0 PHP是解釋型語言

一門語言究竟是解釋型仍是編譯型取決因而否保存了可執行代碼。php

註釋html

  • HTML註釋:
  • CSS註釋: /* CSS註釋 */
  • Javascript註釋 a)單行註釋: //單行註釋 b)多行註釋: /多行註釋/
  • PHP註釋 a)單行註釋: //單行註釋 #單行註釋 b)多行註釋: /* 多行註釋 */
  • MySQL註釋: a)單行註釋: --單行註釋 b)多行註釋: /* 多行註釋 */
1 PHP執行順序

讀取源碼 詞法分析 語法分析 編譯(生成opcode緩存) 由zend engine執行 opcode緩存保存在內存中,因此PHP執行效率很是高。git

2 PHP 定界符
a.標準風格(推薦使用)
<?php
    echo 'web test 標準風格'
?>
複製代碼
b.短標記風格(默認不支持,要在php.ini配置 short_open_tag = On )
<?
    echo 'web test 短標記風格'
?>
複製代碼
c.asp 風格(默認不支持,要在php.ini配置 asp_tags = On )
<%
    echo 'web test asp風格'
%>
複製代碼
d.Script標記 腳本風格
<script language="php">
    echo 'web test Script標記風格'
</script>
複製代碼
3 PHP解決顯示亂碼

a. 添加 echo ''; b. 經過 header('content-type:text/html;charset=utf-8');web

4 輸出語句:echo、print、print_r、var_dump
a. echo
echo '呵呵<br>';    //呵呵
echo 10,'<br>';     //10
echo true,'<br>';   //1
echo false,'<br>';  //空
echo array(10);     //Array
echo('aa'); //aa
echo('aa','bb'); //報錯

$n = print '呵呵<br>';
echo '<br>',$n

// 結論:
// 能夠輸出字符串和數字
// true輸出1,false輸出空,不要用echo輸出布爾型數據
// 不能輸出數組中元素,只能顯示Array
// echo能夠一次輸出多個值,第個值用逗號隔開
// echo帶括號只能輸出一個
// $輸出成功返回1,失敗返回0
複製代碼
b. print
print '呵呵<br>';    //呵呵
print '10<br>';     //10
print true.'<br>';   //1
print false.'<br>';  //空
print array(10);     //Array

$n = print '呵呵<br>';
echo '<br>',$n

// 結論:
// 輸出規則和echo同樣
複製代碼
c. print_r()
print_r('呵呵<br>'); //呵呵
print_r('10<br>');  //10
print_r(true.'<br>');  //1
print_r(false.'<br>'); //空
print_r(array(10)); //Array([0]=>10)

// 結論:
// 主要用來輸出數組
複製代碼
d. var_dump
var_dump('呵呵'); echo '<br>'; //string(10) 呵呵
var_dump(10); echo '<br>'; // int(10) 
var_dump(true); echo '<br>'; //bool(true) 
var_dump(false); echo '<br>'; //bool(false) 
var_dump(array(10)); //array(1) { [0]=> int(10) }

// 結論:
// 輸出佈局類型
// 輸出類型
複製代碼
5 PHP語法的通常特色

a. 語句必須以分號(;)結尾 b. 關於大小寫:變量區分大小寫,關鍵定(if,else,for ...)不區分大小寫數組

6 變量(計算機內存中的一段空間)
a. 變量的命名規則
  • 變量必須心開關,好比name。$不是變量名的一部分,僅表示變量名的開媽
  • 除了$之外,以字母,下劃線開頭,後面跟的是字母、數字、下劃線
b. 傳值和傳址

傳值:緩存

<?php
    $a=10;
    $b=$a;
    $a++;
    echo $a,'<br>'; //11
    echo $b,'<br>'; //10
?>
複製代碼

傳址:bash

<?php
    $a=10;
    $b=&$a; //&表示取出變量的地址
    $a++;
    echo $a,'<br>'; //11
    echo $b,'<br>'; //11
?>
複製代碼

總結上面例題:傳值,保存值的空間是兩個,更改一個空間的值不影響另外的變量;傳地址,保存值的空間就一個,更改一個變量的值,另外一個變量也會變化,由於兩個變量指向同一個空間。函數

c. 銷燬變量
$a=10;
    $b=&$a; //&表示取出變量的地址
    unset($a); //銷燬的只是變量名
    echo $b //10
複製代碼

unset() 銷燬的只是變量名,變量的值由PHP垃圾回收機制去銷燬,垃圾數據就是沒有變量引用的數據佈局

d. 超全局變量
$_COOKIE
$_ENV
$_FILES
$_GET
$_POST
$_REQUEST
$_SERVER
$_SESSION
$GLOBALS
複製代碼

超全局變量以$_開關 全部的超全局變量數據類型都是數組post

示例:$_GET 保存get提交的全部數據

<form action="" method="get" action="">
    姓名:<input type="text" name="name">
    密碼:<input type="password" name="pass" id="">
    <input type="submit" value="提交">
</form>

<?php
    var_dump($_GET);
?>
複製代碼

示例:$_POST 保存get提交的全部數據

<form action="" method="post" action="">
    姓名:<input type="text" name="name">
    密碼:<input type="password" name="pass" id="">
    <input type="submit" value="提交">
</form>

<?php
    var_dump($_POST);
?>
複製代碼

示例:$_REQUEST 保存get和post的數據

<form method="post" action="?add=北京">
    姓名:<input type="text" name="name">
    密碼:<input type="password" name="pass" id="">
    <input type="submit" value="提交">
</form>

<?php
    var_dump($_REQUEST);
    // array(3) { ["add"]=> string(6) "北京" ["name"]=> string(3) "123" ["pass"]=> string(3) "456" }
    
    var_dump($_GET); echo '<br>';
    var_dump($_POST); echo '<br>';
?>
複製代碼

示例:$_REQUEST 保存 get 和 post 的值,默認若是有同名的元素 post 的值將 get 的值覆蓋(php.ini能夠修改規側)

<form method="post" action="?name=北京">
    姓名:<input type="text" name="name">
    密碼:<input type="password" name="pass" id="">
    <input type="submit" value="提交">
</form>

<?php
    $_REQUEST:array(2) { ["name"]=> string(4) "user" ["pass"]=> string(4) "pass" } 
    $_GET:array(1) { ["name"]=> string(6) "北京" } 
    $_POST:array(2) { ["name"]=> string(4) "user" ["pass"]=> string(4) "pass" } 
?>
複製代碼

php.ini

request_order = "GP" // request_order = "PG"
複製代碼
e. 可變變量
<?php
    $a = '呵呵';
    $b = 'a';
    echo $$b;
    // $$b: $b裏保存的變量a,$a='呵呵',全部$$b等於呵呵
?>
複製代碼
<?php
    function openjpg(){
        echo '打開jpeg';
    }
    function opengif(){
        echo '打開gif';
    }
    function openpng(){
        echo '打開png';
    }

    function openImsge($type){
        if($type == 'jpg'){
            echo '打開jpeg';
        }elseif($type == 'git'){
            echo '打開gif';
        }elseif($type == 'png'){
            echo '打開png';
        }else{
            echo 'error';
        }

        // 可變
        $fn = 'open'.$type;
        $fn();
    }
?>
複製代碼
7 常量
7.1自定義常量

當一個數據在腳本執行的週期內不發生變化,能夠將這個數據保存在常量中。 常量前面沒有$。 語法:define(常量名,常量值,是否區分大小寫),默認是區分大小寫的。 定義常量能夠用特殊字符,可是調用的時候必須經過 'constant' 關鍵字調用 常量一但定義就不能從新定義,能夠在定義常量的時候先經過 defined函數判斷常量是否已經定義 常量的規範寫法是大寫

示例

define('NAME','李白', false); //true表示不區分大小寫,false區分大小寫
echo NAME,'<br>'; //李白
echo name,'<br>'; //報錯
複製代碼

定義常量能夠用特殊字符

define('^_^','開心',true);
echo constant('^_^'),'<br>'; //開心
複製代碼

判斷常量是否已經定義

if(!defined('NAME')){
    define('NAME','杜甫');
}else{
    echo '已經定義';
}
複製代碼

還能夠用const來聲明常量

const NATION = '中國';
echo NATION;
複製代碼
7.2 預約義常量
echo PHP_VERSION //php版本
echo PHP_OS //運行的操做系統
複製代碼
7.3 魔術常量
echo __LINE__; //當前行號
echo __FILE__; //當前文件
複製代碼
7.4顯示全部常量
var_dump(get_defined_constants());
//true:表示將全部的常量分類顯示。
複製代碼
相關文章
相關標籤/搜索