亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 18
粉絲 0
評(píng)論 0
訪問(wèn)量 14925
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
210426 PHP 輸出方法,數(shù)據(jù)類型,變量,作用域,常量
xyphpblog
原創(chuàng)
986人瀏覽過(guò)

1. PHP 輸出主要方法

字符串

  1. echo “str”
  2. print “str”

區(qū)別:

  • print有返回值為1,只能接收一個(gè)參數(shù),可用于三元運(yùn)算符
  • echo沒(méi)有返回值,可接收多個(gè)參數(shù)用逗號(hào)(,)隔開(kāi)
  1. <?php
  2. //echo
  3. echo "using echo";
  4. echo "<hr>";
  5. //print
  6. $a = print "using print";
  7. //return value of print
  8. echo " return ".$a;
  9. echo "<hr>";
  10. $b = "using echo ";
  11. echo $b,$b;
  12. echo "<hr>";

*注:ob_clean() 使之前代碼不輸出

數(shù)組

  1. var_dump(arr)
  2. print_r(arr,可選參數(shù):true/false)
  3. var_export(arr,可選參數(shù):true/false)

區(qū)別:

  • 輸出格式不同
  • print_r()和var_export()可以設(shè)置第二個(gè)參數(shù)true,以使內(nèi)容不顯示在瀏覽器中,但其返回值可以儲(chǔ)存在變量中用于日志記錄
  1. ob_clean();
  2. $arr = [1,true,"hehe",3.14];
  3. //數(shù)組也可這樣聲明
  4. // $arr2 = Array("id"=>1,"name"=>"haha","working"=>false);
  5. echo "using echo \$arr";
  6. echo "<hr>";
  7. echo $arr;
  8. echo "<hr>";
  9. echo "using var_dump(\$arr)";
  10. echo "<hr>";
  11. var_dump($arr);
  12. echo "<hr>";
  13. echo "using print_r(\$arr)";
  14. echo "<hr>";
  15. print_r($arr);
  16. echo "<hr>";
  17. echo "using var_export(\$arr)";
  18. echo "<hr>";
  19. var_export($arr);
  20. echo "<hr>";
  21. echo "using print_r(\$arr,true)";
  22. print_r($arr,true);
  23. echo "<hr>";
  24. echo "using var_export(\$arr,true)";
  25. var_export($arr,true);

  1. $v1=print_r($arr,true);
  2. $v2=var_export($arr,true);
  3. file_put_contents("log1.txt",$v1);
  4. file_put_contents("log2.txt",$v2);

*注:<pre></pre>標(biāo)簽可使內(nèi)容保持文本格式輸出和

2. PHP 數(shù)據(jù)類型

var_dump() or gettype() 可以用于查看數(shù)據(jù)類型

2.1 標(biāo)量類型

  • Integer
  • Float
  • String
  • Boolean

2.2 特殊類型

  • resource
  • null

*注:@符號(hào)在PHP中用作錯(cuò)誤控制操作符。當(dāng)表達(dá)式附加@符號(hào)時(shí),將忽略該表達(dá)式可能生成的錯(cuò)誤消息。

resource類型

  1. <?php
  2. //resource 資源類型 保存到外部資源的一個(gè)引用
  3. //fopen
  4. $reader = fopen("log1.txt","w");
  5. var_dump($reader);
  6. //resource(3) of type (stream)
  7. // 3是id stream是資源類型
  1. //imagecreate()
  2. $image_creater = imagecreate(100,50);
  3. var_dump($image_creater);
  4. //resource(4) of type (gd)
  5. // id gd是PHP的一個(gè)庫(kù),默認(rèn)打開(kāi)(phpinfo()可見(jiàn))

null類型

  1. //null 表示變量沒(méi)有值
  2. $reader = null;
  3. var_dump($reader);
  4. //NULL
  5. unset($image_creater);
  6. var_dump($image_creater);
  7. //NULL

2.3 數(shù)據(jù)類型轉(zhuǎn)換

  • 強(qiáng)制轉(zhuǎn)換(臨時(shí),原變量類型和值不變)
  • 自動(dòng)轉(zhuǎn)換(數(shù)值,字符串,布爾)(臨時(shí),原變量類型和值不變)
  • 當(dāng)變量的值超過(guò)系統(tǒng)預(yù)定義的范圍也會(huì)發(fā)生自動(dòng)類型轉(zhuǎn)換,如int

強(qiáng)制類型轉(zhuǎn)換

  1. <?php
  2. # 強(qiáng)制類型轉(zhuǎn)換
  3. $page = '3';
  4. echo gettype($page);
  5. echo "<hr>";
  6. $newPage = (int)$page;
  7. echo gettype($newPage);
  8. echo "<hr>";
  9. var_dump($newPage,(string)$newPage,(float)$newPage);
  10. echo "<hr>";
  11. var_dump((array)$newPage,((array)$newPage)[0]);

自動(dòng)類型轉(zhuǎn)換—數(shù)值
(使用+ - 運(yùn)算符,計(jì)算的數(shù)據(jù)需為數(shù)值類型,如果不是數(shù)值類型,會(huì)觸發(fā)自動(dòng)轉(zhuǎn)換)

  1. # 自動(dòng)類型轉(zhuǎn)換
  2. $a = "200pigs";
  3. @$a += 100;
  4. var_dump($a);
  5. // int(300)
  6. $a += 5.5;
  7. var_dump($a);
  8. // float(305.5)
  9. $a += null + "10";
  10. var_dump($a);
  11. // float(315.5)

自動(dòng)類型轉(zhuǎn)換—字符串
(使用 . 拼接字符串,會(huì)觸發(fā)自動(dòng)轉(zhuǎn)換為字符串)

  1. echo "I am ". 18 ." years old ".true;
  2. // I am 18 years old 1

自動(dòng)類型轉(zhuǎn)換—布爾

  1. # if判斷中,null等同于false
  2. if (!null) {
  3. echo "ok";
  4. }
  5. // ok

以上轉(zhuǎn)換不改變?cè)瓉?lái)變量的類型和值

強(qiáng)制改變變量的類型

  1. @settype($page,boolean);
  2. echo "<hr>";
  3. echo $page;
  4. // 1
  5. echo gettype($page);
  6. // boolean

2.4 php強(qiáng)類型模式

  • 以下函數(shù)中,傳入的參數(shù)會(huì)強(qiáng)制轉(zhuǎn)為int型
  1. function add(int $a, int $b) : string {
  2. return $a + $b;
  3. }
  4. var_dump(add(11.11,22.22));
  5. // string(2) "33"

3. 變量

3.1 變量命名方式

  • 字母,數(shù)字,下劃線
  • 不能以數(shù)字開(kāi)頭
  • 不能使用關(guān)鍵字
  • 變量區(qū)分大小寫,函數(shù)名不區(qū)分

3.2 變量賦值

  • 值(value)
    將變量a的值賦給變量b,復(fù)制出新的值內(nèi)存地址空間,值發(fā)生變化時(shí)互不影響
  • 引用(reference)
    • 將對(duì)變量a的引用賦給變量b,使變量b指向同一個(gè)地址,沒(méi)有復(fù)制,速度更快
    • unset()被引用的變量只會(huì)解除變量間的關(guān)聯(lián)
  1. $a = 100;
  2. $b = $a;
  3. $c = &$a;
  4. echo "\$a=$a, ","\$b=$b, ","\$c=$c";
  5. echo "<hr> change a to 55: \$a=55<hr>";
  6. $a = 55;
  7. echo "\$a=$a, ","\$b=$b, ","\$c=$c";
  8. echo "<hr>unset(\$a)<hr>";
  9. echo "\$a=$a, ","\$b=$b, ","\$c=$c";
  10. echo "<hr> change a to 99: \$a=99<hr>";
  11. echo "\$a=$a, ","\$b=$b, ","\$c=$c";

3.3 檢查變量函數(shù)

  • isset()
    若變量存在且不為null,返回true;反之返回false
  1. $uname = "Tom";
  2. var_dump(isset($uname));
  3. //bool(true)
  4. $uname = null;
  5. var_dump(isset($uname));
  6. //bool(false)
  • empty() 判斷變量是否為空字符串/null/0/false,是其中之一則返回true;反之返回false
  1. $upwd = "";
  2. var_dump(empty($upwd));
  3. // bool(true)
  4. $upwd = null;
  5. var_dump(empty($upwd));
  6. // bool(true)
  7. $upwd = 0;
  8. var_dump(empty($upwd));
  9. // bool(true)
  10. $upwd = 1;
  11. var_dump(empty($upwd));
  12. // bool(false)
  13. $upwd = false;
  14. var_dump(empty($upwd));
  15. // bool(true)
  16. $upwd = true;
  17. var_dump(empty($upwd));
  18. // bool(false)

3.4 變量作用域

  • 定義在函數(shù)外部的變量是全局變量,在函數(shù)內(nèi)無(wú)法直接訪問(wèn)
  • 定義在函數(shù)內(nèi)部的變量是局部變量,在函數(shù)外無(wú)法訪問(wèn)
  • 在函數(shù)中使用全局變量
    • global $a, $b
    • $GLOBALS[“a”],$GLOBALS[“b”]
  1. $a = 10;
  2. $b = 20;
  3. function a(){
  4. echo $a+$b;
  5. }
  6. a();
  7. //0
  8. #在函數(shù)中使用全局變量
  9. #1. global
  10. function b(){
  11. global $a, $b;
  12. echo $a+$b;
  13. }
  14. b();
  15. //30
  16. #2. $GLOBALS[name]
  17. function c(){
  18. echo $GLOBALS["a"]+$GLOBALS["b"];
  19. }
  20. c();
  21. //30

3.5 預(yù)定義的全局變量

  • 數(shù)組
  • 任何地方都可以訪問(wèn),無(wú)作用域限制
  1. // $GLOBALS: 引用全局作用域中可用的全部變量
  2. // $_SERVER: 服務(wù)器和執(zhí)行環(huán)境信息
  3. // $_GET :通過(guò) URL 參數(shù)(又叫 query string)傳遞給當(dāng)前腳本的變量的數(shù)組
  4. // $_POST:當(dāng) HTTP POST 請(qǐng)求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 時(shí),會(huì)將變量以關(guān)聯(lián)數(shù)組形式傳入當(dāng)前腳本
  5. // $_FILES:通過(guò) HTTP POST 方式上傳到當(dāng)前腳本的項(xiàng)目的數(shù)組
  6. // $_COOKIE:通過(guò) HTTP Cookies 方式傳遞給當(dāng)前腳本的變量的數(shù)組
  7. // $_SESSION:當(dāng)前腳本可用 SESSION 變量的數(shù)組
  8. // $_REQUEST: 默認(rèn)情況下包含了 $_GET,$_POST 和 $_COOKIE 的數(shù)組
  9. // $_ENV: 通過(guò)環(huán)境方式傳遞給當(dāng)前腳本的變量的數(shù)組

例 $_GET
獲取地址欄后面的參數(shù)
http://phps.com/0426/demo5.php?id=1&age=22

  1. echo "<pre>".print_r($_GET,true)."<pre>";

4. 常量

  • 用const聲明(不是$)或define(NAME,value),但在類中只能用const
  • 定義時(shí)必須初始化
  • 不能重新被定義或者取消定義
  • 通常為固定的值,名稱大寫
  • 常量,類,接口,函數(shù),是全局成員,而變量不是
  1. <?php
  2. # 常量 const, define(name,value)定義
  3. const PATH = "/0426/demo4.php";
  4. const FEMALE = "女";
  5. define("MALE","男");
  6. printf("性別 <br> Male %s <br> Female %s",MALE,FEMALE);
  7. //printf() 格式化輸出
  8. # 在類中定義常量只能使用 const
  9. class Test{
  10. const PATH = "/0426/demo4.php";
  11. }

4.1 系統(tǒng)預(yù)定義常量

get_defined_constants(true/false)

echo "<pre>".print_r(get_defined_constants(true),true)."<pre>";

4.2 魔術(shù)常量

  • 預(yù)定義的常量,但值取決于使用的位置


(source:https://www.php.net/manual/en/language.constants.magic.php)

  1. <?php
  2. echo "line: ".__LINE__;
  3. // line: 2
批改老師:滅絕師太滅絕師太

批改狀態(tài):合格

老師批語(yǔ):
本博文版權(quán)歸博主所有,轉(zhuǎn)載請(qǐng)注明地址!如有侵權(quán)、違法,請(qǐng)聯(lián)系admin@php.cn舉報(bào)處理!
全部評(píng)論 文明上網(wǎng)理性發(fā)言,請(qǐng)遵守新聞評(píng)論服務(wù)協(xié)議
0條評(píng)論
關(guān)于我們 免責(zé)申明 意見(jiàn)反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)