PHP入門及數據類型

PHP數據類型

  1. PHP標記
//HTML風格
<?phpecho "hello world";
?>
//簡短風格
<?echo "hello world";
?>
  1. 數據類型
    PHP 最初源于 Perl 語言,與 Perl 類似,PHP 對數據類型采取較為寬松的態度。PHP 規定,變量數據類型會根據程序中的邏輯自動設置。這意味著,在 PHP 腳本運行時,用戶有時候甚至沒有機會決定一個變量的類型是一個數值還是字符串,亦或是其他數據類型。
    雖然這一點很靈活,但有時也會導致一些小問題的出現:如果不將某個變量指定為所需要的數據類型,那么在 PHP 腳本運行時,它可能會變成其它的數據類型,從而導致計算錯誤。 不過我們也不用太過擔心,因為我們可以將變量強制聲明為我們想要的數據類型。
    PHP 的數據類型可以分為三大類,分別是標量數據類型、復合數據類型和特殊數據類型
    標量數據類型
    標量數據類型是數據結構的最基礎單元,只能存儲一個數據。在 PHP 中的標量數據類型分為四種,如下表所示:
    在這里插入圖片描述
  2. 字符串
    字符串是連續的字符序列,在其它語言中,字符和字符串是兩種不同的數據類型,但在 PHP 中,統一將字符和字符串當作字符串數據類型。在 PHP 中,定義字符串有三種方式,分別是單引號方式、雙引號方式、Heredoc 方式
<?php
//雙引號聲明字符串,雙引號可以解析特殊符號
$str = "hello world";
//echo $str;
//輸出hello world//雙引號可以解析特殊符號
$str = "hello world <br/> jack";
echo $str;
//輸出hello world---><br/>換行
//jackecho "<br>";//也可以解析變量
$add = 10;
echo "我有{$add}塊";
//輸出我有10塊//單引號的方式聲明字符串是純字符串,不具備解析能力
$str = 'hello world';
echo $str;
//輸出hello world
echo "<br>";//使用Heredoc方式定義字符串
$str = <<<EOF
url:http//www.baidu.com
EOF;
echo $str;
//輸出url:http//www.baidu.com
  1. 整形
    在 PHP 中,整型變量稱為 integer 或 int 類型,用來表示一個整數,整型的規則如下所示:
    整型必須至少有一個數字(0~9);
    整型不能包含逗號或空格;
    整型不能包含小數點;
    整型可以是正數或負數。
    整型的取值范圍必須介于 -2E31 到 2E31 之間,可以用三種格式來表示,即十進制、十六進制(以 0x 為前綴)和八進制(以 0 為前綴)。
    下面通過示例來演示一下整型的使用,示例中使用到了 PHP 的 var_dump() 函數,該函數可以返回變量
    的數據類型和值
$x = 5892; //定義一個整形的變量
var_dump($x); // 輸出變量的類型 int(5892)
echo $x;
// 輸出5892
echo "<br>";$x = 0x8c; //定義十六進制
var_dump($x);// 輸出int(140)echo "<br>";$x = 047; //定義八進制
var_dump($x); //輸出int(39)
  1. 浮點型
    浮點型在 PHP 中被稱為 float 類型,也可稱為實數,可以用來存儲整數和小數,有效的取值范圍是
    1.8E-308 到 1.8E+308 之間。浮點數的精確度比整型數據類型要高。
$num1 = 10.365;
$num2 = 2.4e3;
$num3 = 8E-5;
var_dump($num1, $num2, $num3);
//輸出float(10.365) float(2400) float(8.0E-5)
  1. 布爾類型
    布爾型只有兩種值,分別是 TRUE 和 FALSE(不區分大小寫),意為邏輯真和邏輯假。示例代碼如下:
<?php$x = True;$y = faLsE;var_dump($x, $y);//輸出bool(true) bool(false)?>
  1. 復合數據類型
    復合數據類型允許將多個類型相同的數據聚合在一起,表示為一個實體項。復合數據類型包括數組
    (Array)和對象(Object)。

數組
數組是一組數據的集合,是將數據按照一定規則組織起來形成的一個整體。數組的本質是存儲管理和操
作一組變量。按照數組的維度劃分,可以有一維數組、二維數組和多維數組。我們可以使用 array() 函數
來創建數組。

//數組
//定義一個數組
//這個數組中還包含一個數組
$list = ["name" => "jack","age" => 20,"sex" =>["date" => "wu","time" => "2025-12-12"],1
];
echo "<pre>";//<pre>是一個HTML標簽,作用是用來格式化輸出
print_r($list);
echo "</pre>";
//輸出是一個個鍵值對,如數組中有數字,他的鍵就是下標,如下:
//Array
//(
//    [name] => jack
//    [age] => 20
//    [sex] => Array
//          (
//              [date] => wu
//              [time] => 2025-12-12
//          )
//
//    [0] => 1
//)
//獲取數組里的元素可以用下標取也可以使用鍵來取
echo $list[0];
echo "<br>";
echo $list["name"];
//輸出:
//1
//jack
  1. 變量
    直接賦值:直接賦值就是使用“=”直接將值賦給某變量,示例代碼如下:
<?php$name = "PHP好牛逼";echo $name;?>

拷貝賦值:拷貝賦值就是將一個變量的值,“復制”一份,再傳給另一個變量。這兩個變量都是相互獨立的,它們之
間沒有任何關系,修改其中一個變量的值,另一個變量不會變

<?php$a = 100;$b = $a;    
// 將$a的值復制一份,傳給$b$a = 200;   // 重新為 $a 賦值
echo '$a = '.$a.', $b = '.$b;?>

引用賦值:引用賦值就是將一個變量的內存地址,“復制”一份,傳給另一個變量。這兩個變量代表的是同一個值。
改變其中一個,另一個也會改變。實現引用賦值需要在被引用的變量前加上“&”符號

$a = 100;//定義變量a為100
$b = $a;// 將$a的值復制一份,傳給$b
echo $b;//輸出100echo "<br>";$a = 200;//改便變量a的值為200,變量b的值不會改變
echo '$a = '.$a.'$b = '.$b;
//輸出$a = 200$b = 100

預定義變量
預定義變量又叫超全局變量,它們不需要提前聲明就可以在所有的作用域中使用。通過這些預定義變量
可以獲取用戶會話、用戶操作系統的環境和本地操作系統的環境等信息。
常用的預定義變量如下:

$_GLOBALS:全局作用域中的全部可用變量;
$_SERVER:服務器和執行環境的信息;
$_REQUEST:包含了 $_GET$_POST$_COOKIE 的所有信息;
$_POST:通過 POST 方法提交的數據;
$_GET:通過 GET 方法提交的數據;
$_FILES:通過 POST 方式上傳到服務器的文件數據;
$_ENV:通過環境方式傳遞給當前腳本的變量組成的數組;
$_COOKIE:通過 HTTP Cookies 方式傳遞給當前腳本的變量所組成的數組;
$_SESSION:當前腳本可用 SESSION 變量組成的數組。

常量
所謂常量就是不能改變的量,PHP 中常量一旦被定義,就不能被修改或取消定義。
PHP 常量通常用來存儲一個不被改變也不希望變化的數據,該數據只能是四種標量數據類型的數據:整
型、浮點型、字符串、布爾型,與變量相比,常量具有以下幾個特點:
·常量前面沒有美元符號($);
·常量只能用 define() 和 const 定義;
·常量的作用域是全局的;
·常量一旦被定義就不能被重新定義或者取消定義。

定義常量

合法的常量名只能以字母和下劃線開始,后面可以跟著任意長度的字母、數字或下劃線。在 PHP 中可以
通過 define() 函數定義一個常量,define() 函數的語法如下: 
define(string $name, mixed $value [, bool $case_insensitive = false]) 
define() 函數參數的說明如下表所示:

在這里插入圖片描述

除了可以使用 define() 函數之外,還可以使用 const 關鍵字來定義常量,const 關鍵字的語法如下: 
const 常量名 = 常量值; <?php
//WebSite是變量名
define('WebSite', 1);
const url = 'http://www.baidu.com';
echo WebSite.'<br>';
echo url;
//輸出1 http://www.baidu.com?>

判斷常量是否存在

要判斷一個常量是否已經定義,可以使用 defined() 函數。函數的語法格式如下: 
defined(string $name) 
其中 $name 為待判斷的常量名稱,函數會返回一個 bool 類型的值,常量已定義則返回 true,未定義則
返回 falsedefine('WebSite', 1);
const url = 'http://www.baidu.com';
var_dump(defined('WebSite'));
echo '<br>';
var_dump(defined('url'));
  1. 運算符
    算術運算符
    算術運算(Arithmetic Operators)符是處理四則運算(加、減、乘、除四種運算)的符號,在數字的
    處理中應用得最多。常用的算術運算符如下:
    在這里插入圖片描述
 $a = -100;$b = 70;$c = 20;echo '$a = '.$a.', $b = '.$b.', $c = '.$c.'<br>';echo '$a + $b = '.($a + $b).'<br>';echo '$a - $b = '.($a - $b).'<br>';echo '$a * $c = '.($a * $c).'<br>';echo '$b / $c = '.($b / $c).'<br>';echo '$b % $c = '.($b % $c).'<br>';

字符串運算符
字符串運算符只有一個,即英文的句號“.”,它可以將兩個字符串連接起來,拼接成一個新的字符串。使
用過 C 或 Java 語言的讀者應注意,PHP 里的“+”只能用作賦值運算符,而不能用作字符串運算符。

<?php$str1 = 'hello';$str2 = 'world';$str3 = $str1.$str2;echo $str3;?>

賦值運算符
最基本的賦值運算符是“=”,用于對變量進行賦值操作,而其他運算符可以和賦值運算符“=”聯合使用,構
成組合賦值運算符。賦值運算符是把基本賦值運算符“=”右邊的值賦給左邊的變量。
在這里插入圖片描述

<?php$a = 9;$b = 6;echo '$a = '.$a.', $b = '.$b.'<br>';echo '$a += $b 的值為:'.($a += $b).'<br>';echo '$a -= $b 的值為:'.($a -= $b).'<br>';echo '$a *= $b 的值為:'.($a *= $b).'<br>';echo '$a /= $b 的值為:'.($a /= $b).'<br>';?>

遞增和遞減運算符
算術運算符適合在有兩個或者兩個以上不同操作數的場合使用,但是當只有一個操作數時,使用算術運
算符是沒有必要了。這時就可以使用遞增“++”或遞減“–”運算符了。
一種是先將變量增加或者減少 1 后再將值賦給原變量,稱為前置遞增或遞減運算符(也稱前置自增
自減運算符);
一種是將運算符放在變量后面,即先返回變量的當前值,然后再將變量的值增加或者減少 1,稱為
后置遞增或遞減運算符(后置自增自減運算符)。

<?php$a = 5;$b = 3;$c = 8;$d = 11;echo '$a = '.$a.', $b = '.$b.', $c = '.$c.', $d = '.$d.'<br>';echo '++$a = '.++$a.'<br>';echo '$b++ = '.$b++.'<br>';echo '--$c = '.--$c.'<br>';echo '$d-- = '.$d--.'<br>';?>

邏輯運算符
在這里插入圖片描述
比較運算符
在這里插入圖片描述
其中,我們要重點區分一下“等于”和“全等”,等于只是對兩個變量的值進行了比較運算,而全等=不
僅會對運算符兩邊表達式的值進行比較,而且還會對數據類型進行比較,只有兩邊的值和數據類型都相
等時,運算結果才是 TRUE。
另外,“不等于”和“不全等”也是如此,不等于!=只對運算符兩邊表達式的值進行比較,而不全等!==不僅
會比較運算符兩邊表達式的值,還會對值的類型進行比較,當兩邊的值或者數據類型有任意一個不相等
時,運算結果才是 TRUE
三元運算符
三元運算符的語法格式如下:
(expr1)?(expr2):(expr3); //表達式1?表達式2:表達式3
如果條件“expr1”成立,則執行語句“expr2”,否則執行“expr3”。

<?php$a = 10;$a % 2 == 0 ? print '$a 是偶數!' : print '$a 是奇數!';?>

運算符優先級
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
對具有相同優先級的運算符來說,從左向右的結合方向意味著將從左向右求值,從右向左結合方向則反
之。對于無結合方向的則具有相同優先級的運算符,該運算符有可能無法與其自身結合。例如在 PHP 中
1 < 2 > 1是一個非法語句,,而1 <= 1 == 1則不是,因為<=比==優先級高。

<?php$a = 3 * 4 % 5; // (3 * 4) % 5 = 2$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2$a = 1;$b = 2;$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5echo ++$a + $a++;?>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/91838.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/91838.shtml
英文地址,請注明出處:http://en.pswp.cn/web/91838.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

沸點 | 嬴圖參加世界人工智能大會

2025 WAIC于 7 月 26 日至 28 日在上海舉行。大會展覽面積突破 7 萬平方米&#xff0c;800 余家企業參展。嬴圖作為圖數據庫領域的領先企業&#xff0c;攜前沿技術與創新應用精彩亮相。?大會期間&#xff0c;嬴圖創始人兼CEO孫宇熙與來自全球的頂尖學者、企業代表共同探討人工…

2. 字符設備驅動

一、設備號 1.1. 什么是設備號 設備號是用來標記一類設備以及區分這類設備中具體個體的一組號碼。 設備號由主設備號和次設備號組成。主設備號的作用為標記一類設備、用于標識設備驅動程序,而次設備號的作用是為了區分這類設備中的具體個體設備及用于標識同一驅動程序下的具…

uboot armv8 啟動流程之 linker script

section 詳細說明.text按如下順序&#xff0c;中斷向量表vectors, 啟動入口代碼start.o,普通text, glue &#xff08;arm thumb2 相互調用時自動生成的代碼&#xff09;*(.vectors)CPUDIR/start.o (.text*)*(.text*)*(.glue*)__image_copy_start 標記為text 段入口&#xff0c;…

xxljob總結

XXL-Job 支持多種任務類型&#xff0c;以下是常見任務類型的示例 Demo&#xff0c;包含核心配置和代碼片段&#xff0c;幫助快速理解用法&#xff1a;一、Bean模式任務&#xff08;最常用&#xff09;通過注解 XxlJob 定義任務方法&#xff0c;直接在 Spring 容器中管理&…

Python包安全工程實踐:構建安全可靠的Python生態系統

在現代計算環境中&#xff0c;性能往往是Python包成功的關鍵因素。本文將深入探討Python包的性能優化技術&#xff0c;包括并發編程模型、性能分析工具、內存優化策略以及原生代碼集成等高級主題&#xff0c;幫助你構建高性能的Python組件。1. 性能分析基礎1.1 性能分析工具矩陣…

kubernetes基礎知識

個人博客站—運維鹿: http://www.kervin24.top CSDN博客—做個超努力的小奚&#xff1a; https://blog.csdn.net/qq_52914969?typeblog一、kubernetes介紹Kubernetes本質是一組服務器集群&#xff0c;它可以在集群的每個節點上運行特定的程序&#xff0c;來對節點中的容器進行…

winntsetup安裝驅動和光驅安裝F6功能一樣----NT5.2.3790源代碼分析

D:\drv>dir驅動器 D 中的卷是 新加卷卷的序列號是 443D-D64BD:\drv 的目錄2025-08-03 23:57 <DIR> . 2025-08-03 23:57 <DIR> .. 2008-05-27 10:01 119,068 yk51x86.cat 2008-05-20 10:01 969,380 yk51x86.inf…

Web 開發 11

今天完成了workshop2&#xff0c;進度有點慢&#xff0c;但是記錄一下極為愚蠢的一輪輪問答和思考~&#xff01;&#xff08;還是有點成就感的&#xff09;ps&#xff1a;【】內為我的提問1 導入語句&#xff08;ES6 模塊導入語法&#xff09;【import CatHappiness from "…

寫作路上的迷茫與突破

曾經&#xff0c;我也是那個在寫作面前躊躇不前的人。每次提筆&#xff0c;滿心都是“我寫不好”“我沒什么可寫的”“我達不到別人的高度”……這些念頭像藤蔓一樣&#xff0c;緊緊纏繞著我&#xff0c;讓我寸步難行。我看著群里的小伙伴們一個個妙筆生花&#xff0c;自己卻只…

23 Active Directory攻擊與防護策略解析

引言 Active Directory&#xff08;AD&#xff09;是企業IT環境中用戶認證、訪問控制和身份管理的核心。因其掌握整個網絡的"鑰匙"&#xff0c;AD常成為攻擊者的首要目標。 從憑證轉儲到隱蔽偵察&#xff0c;攻擊者通過多種手段控制AD。無論您是網絡安全分析師、紅…

【內容規范】關于標題中【】標記的使用說明

【內容規范】關于標題中【】標記的使用說明 在信息爆炸的時代&#xff0c;如何讓內容更易識別、更具條理性&#xff0c;成為內容創作者和平臺運營者共同關注的問題。標題中【】標記的使用&#xff0c;正是在這種需求下形成的一種實用規范。 這種規范的核心作用在于建立統一的內…

centos 9 安裝docker教程

拉取相關依賴 dnf -y install dnf-plugins-core設置阿里云鏡像庫 dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安裝docker dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plu…

關閉Jetbrains Mono字體連寫、連字功能

所謂的關閉Jetbrains Mono字體連寫&#xff0c;其實就是更換為Jetbrains Mono NL字體二者的區別就是符號間距的大小不同&#xff0c;也就是有無連字功能。 下圖以Visutal Studio為例&#xff1a;

漫花軟件集合分享

漫花軟件集合分享的各種apk 1、磁盤漫畫【推薦】 2、你搜 3、皮皮喵 4、潑辣漫畫 5、趣漫畫 6、異次元&圖源 7、漫 8、再漫畫X 9、章魚漫畫 10、芝士漫畫&圖源 通過網盤分享的文件&#xff1a;漫畫軟件 鏈接: https://pan.baidu.com/s/1dlGl50MNzzVOdTP38_…

DB-GPT 0.7.3 版本更新:支持Qwen3 Embedding和Reranker模型、支持知識庫自定義檢索策略等

V0.7.3版本主要新增、增強了以下核心特性 &#x1f340; 支持Qwen3 Embedding和Reranker模型 &#x1f340; 支持知識庫自定義檢索策略&#xff1a;語義檢索、全文檢索、樹形檢索、混合檢索等 &#x1f340; 新增GaussDB數據源支持 &#x1f340; 支持GLM-4.1V多模態模型 …

Django常見模型字段

AutoField:數據庫中的自動增長類型&#xff0c;相當于ID自動增長的IntegerField類型字段&#xff0c;對應mysql的Int類型 BooleanField:真/假的布爾類型字段&#xff0c;對應mysql的Tinyint類型 CharField:字符類型字段&#xff0c;對應mysql的varChar類型 DateField:日期字段&…

前端列表封面圖如何自不同圖片比例不變形

設置圖片寬度100%時&#xff0c;若不設置高度&#xff0c;可能導致高度不足導致空白區域。如何實現圖片高度自適應填充&#xff0c;避免空白區域&#xff1f;解決方式&#xff1a;加上height&#xff1a;100%&#xff1b;object-fit:cover&#xff1b;就可以始終剪切鋪滿&#…

記錄一次Spring Cloud Gateway配置的跨域處理:解決 ‘Access-Control-Allow-Origin‘ 頭包含多個值的問題

在微服務架構中&#xff0c;前端與后端分離已經成為一種常見模式。這種模式下&#xff0c;前后端通常會部署在不同的域名或端口上&#xff0c;這就導致了跨域資源共享&#xff08;CORS&#xff09;問題。最近&#xff0c;在我們的項目中&#xff0c;我們遇到了這樣一個問題&…

掃雷游戲完整代碼

掃雷游戲完整代碼test.cgame.cgame.h

vue打包后如何在本地運行?

1.打包前的配置打開vue.config.js配置如圖所示內容//打包配置文件 module.exports {assetsDir: static,parallel: false,publicPath: ./, };這段代碼是Vue.js項目的打包配置文件&#xff0c;主要功能包括&#xff1a; - assetsDir: static - 設置靜態資源文件夾名為static - p…