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

搜索
博主信息
博文 70
粉絲 4
評論 5
訪問量 122174
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
PHP:變量的類型轉換方式,變量值傳遞與值引用的區(qū)別,變量作用域和魔術常量
JiaJieChen
原創(chuàng)
1020人瀏覽過

PHP:變量的類型轉換方式,變量值傳遞與值引用的區(qū)別,變量作用域,魔術常量

一.變量/常量命名

①變量命名

  • 僅允許使用: 英文字母(a-z,A-Z),數字(0-9),下劃線(\_)或他們的組合
  • 不允許使用數字開頭
  • 必須使用”$“美元符為前綴
  • 嚴格區(qū)分大小寫
  • 駝峰命名法

②常量命名

  • define(): 函數
  • const: 關鍵字作為前綴
  • 通常,常量都用大寫字母表示

二.變量的類型轉換方式

轉換方式 函數
臨時轉換 (int),(string),(array),(object)…
自動轉換 根據操作符對操作數的類型要求進行
強制轉換 settype()

①臨時轉換

大家可以看到$str沒有轉換之前是string 字符串類型,下面我們用(int)臨時轉換為數值型

大家可以看到現在進行類型轉換之后$str變成了int數值型,和$int一模一樣的類型值,但是這種類型轉換不是永久的!而是臨時的!

②自動轉換:自動轉換也就是讓瀏覽器自己去解析轉換

類型沒有轉換之前是字符串 15歲

用@符號抑制報錯瀏覽器將會自動轉換類型,類型轉換之后15歲變成65,自動和數值類型相加,舍去了后面的字符串文字

③強制轉換:settype()

$arr 沒有轉換類型之前是一個數組Array

強制類型轉換為string,輸出的類型就是字符串string

代碼塊

  1. <?php
  2. //定義全局變量
  3. $str = '15';
  4. $int = 30;
  5. //使用(int) 臨時把字符串轉換為數值
  6. echo (int)$str + $int .'<br>';
  7. var_dump((int)$str,$int);
  8. echo "<hr>";
  9. //自動轉換類型
  10. $age = "15歲";
  11. //@符 強制解除報錯,會讓瀏覽器自動解析
  12. @$age += 50;
  13. echo $age;
  14. echo "<hr>";
  15. //settype()強制類型轉換,把一個數組類型轉換為string類型
  16. $arr = ['1','2','3'];
  17. settype($arr,'string');
  18. echo gettype($arr);
  19. ?>

三.變量值傳遞與值引用的區(qū)別

①變量值傳遞

變量a等于50 變量b等于變量a,輸出變量b也等于50,這叫變量值傳遞,我們再看看更改變量a的值,變量b會不會改變屬性

我們可以看到,變量a的值改變成100,變量b的值沒有變化還是50,變量值傳遞等于每個人都有相同的值,重新更改賦值變量并不能改變被賦值本身的值,如果在下面在輸出一個 變量b等于a呢?

我們可以看到,如果在下面在輸出一個 變量b等于a,則變量b等于變量a最新的那個值,也就是說瀏覽器是從上到下開始解析的,這一點非常重要

②變量引用值傳遞

變量值引用,用一個&符號放在要引用的變量前面,接下來我們改變一下$c的值,看看$a會不會受影響

大家可以看到,我們在這里改變了$c的值,$a的值也會收到影響,說明變量值傳遞和變量值引用是不一樣的!

③empty()和isset()

方法 含義
isset() 用來檢測變量是否被定義,若變量存在并且值不為null才返回true 否則返回false
empty() 檢驗變量是否為空,為空返回true 不為空 返回false
  • empty()

    變量有值不為空,返回false

變量沒有值返回true

  • isset()

    變量值不存在返回false

變量值存在返回true

代碼塊

  1. <?php
  2. //值變量傳遞
  3. //變量a等于50 變量b等于變量a
  4. $a = 50 ;
  5. $b = $a ;
  6. $a = 100 ;
  7. $b = $a ;
  8. echo $b;
  9. echo '<hr>';
  10. //變量值引用 用&符號
  11. $c = 50;
  12. $a = &$c;
  13. //改變一下$c的值
  14. $c = 100;
  15. echo $a ;
  16. echo "<hr>";
  17. // $c = null;
  18. //empty 檢驗變量是否為空,為空返回true 不為空 返回false
  19. var_dump(empty($c));
  20. echo "<hr>";
  21. //isset 用來檢測變量是否被定義,若變量存在并且值不為null才返回true 否則返回false
  22. var_dump(isset($c));

四.變量作用域和魔術常量

名稱 含義
全局變量 全局變量,聲明全局外部的變量,不在函數里面的變量,函數內部無法直接訪問全局變量,必須加上global 才訪問全局變量
局部變量 局部變量,聲明在函數里面的變量

①全局變量:聲明全局外部的變量

全局變量,函數內部無法直接訪問外面的全局變量,要加上global才能訪問到

用global訪問外面的全局變量,多個值用,號隔開

②局部變量:聲明在函數里面的變量

局部變量聲明在函數內部,外部無法訪問到函數內部聲明的變量

③魔術常量:魔術常量長得像這樣__XXXX__,看見兩端有下劃線的就是魔術常量

系統(tǒng)預定義魔術常量 含義
__FILE__ 默認常量,PHP程序文件名
__LINE__ 默認常量,PHP程序行數

__FILE__默認常量,PHP程序文件名也就是當前文件所在的目錄

__LINE__默認常量,PHP程序行數

代碼塊

  1. <?php
  2. //變量作用域:全局變量聲明全局外部的變量
  3. //這是全局變量
  4. // $a = 100;
  5. // $b = 20;
  6. // function Sum(){
  7. // global 訪問外面的全局變量
  8. // global $a ,$b;
  9. // 如果沒有global 則不能直接訪問外面的全局變量
  10. // return $a * $b ;
  11. // }
  12. // echo Sum();
  13. //局部變量:聲明在函數內部
  14. function Sum(){
  15. $a = 50 ;
  16. $b = 30 ;
  17. return $a / $b ;
  18. }
  19. echo Sum();
  20. echo "<hr>";
  21. //聲明在函數內部的變量無法訪問
  22. echo $a ;
  23. echo "<hr>";
  24. //系統(tǒng)預定義魔術變量
  25. // echo __FILE__; //當前文件所在的目錄
  26. var_dump( __LINE__);
批改老師:滅絕師太滅絕師太

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

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

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

  • 登錄PHP中文網,和優(yōu)秀的人一起學習!
    全站2000+教程免費學