PHP共有8中数据类型:
类型名称 | 类型表示 | 取值 |
bool | 布尔型 | true,false |
integer | 整型 | -2147483647-2147483648 |
string | 字符串型 | 字符串长度取决于机器内存 |
float | 浮点型 | 最大值1.8e308 |
object | 对象 | 通过new实例化 $obj=new person(); |
array | 数组类型 | $arr=array(1,2,3,4,5,6);//一维数组 |
resourse | ||
null | 空值 | null |
布尔型bool :
对于其他类型我们可以使用(bool)或者(boolean) 进行强制转换 eg:(bool)1=true;
以下几种情况在强制转化的时候默认为false:
转换 | 结果 |
布尔型的false var_dump((bool) false) | bool(false) |
整型0 var_dump((bool) 0); | bool(false) |
浮点型0.0 var_dump((bool) 0.0); | bool(false) |
字符串‘0’ var_dump((bool) '0'); | bool(false) |
空数组$arr=array(); var_dump((bool) $arr) | bool(false) |
不包含任何成员变量的空对象只在PHP4使用,PHP5中为true | bool(false) |
NULL或者尚未赋值的变量var_dump((bool) NULL) | bool(false) |
从没有任何标记(tags)的XML文档生成的SimpleXML 对象 | bool(false) |
字符串'0.0'转换结果为bool(true)
注:-1和其他非零值(不论正负)都是true
整型integer:
整型的范围-2147483647--2147483647 ,如果超过该值会自动转换成float型
我们可以使用echo PHP_INT_SZIE 输出integer的字长,和机器有关。echo PHP_INT_MAX 输出integer的最大值
PHP中没有整除运算 如果执行 1/2 会产生 float的0.5 如果想实现整除效果,则可以使用 (int)(1/2)=0 或者使用round(25/7)=4
强制转化成整型 (int)或者(integer) bool型 ture 转换成 1 ,false转换成0
浮点型float:
取值范围 最大值 :1.8e308 不知道最小值是多少? 求高手告知
浮点数的字长也和机器有关, 好像没有PHP_FLOAT_SIZE 啊,求高手告知如何的到浮点数字长
字符串类型string:
定义字符串的4种方法:
1.单引号
2.双引号
3.heredoc语法结构
4.nowdoc 语法结构(PHP5.3.0之后)
单引号
单引号定义了最原始的字符串,里面的所有内容都按字符串处理,如果字符串中包含单引号则可以用\转义
双引号
双引号定义的字符串会解析一些特殊字符(\n,\b)和变量
可以将变量放置在双引号中的方式来代替将变量转换成 字符串(string):
$num=10;
$str = "$num"; //$str为字符串型的10
heredoc语法结构
字符串本身
标示符
结束时的标示符必须在一行的开始位置,而且标示符的定义格式也必须按照PHP定义的规则,只能包含数字,字母,下划线,并且不能以数字下划线开头
结束标示符哪一行不允许有其他字符,可以在标示符后面添加一个分号,切分号前后也不能有tab或空格,否则PHP将无法解析该标示符,会继续向下查找标示符,如果在文件结尾前仍没有找到则会产生一个错误
heredoc就是一个没有使用双引号的双引号,就是里面可以包含双引号,且不用转义,而且可以解析特殊字符和变量
nowdoc 语法结构
字符串本身
标示符 www.2cto.com
nowdoc的开始标示符必须使用单引号括起来,结束标示符和其他规则都和heredoc一样
nowdoc就是没有使用单引号的单引号,nowdoc包含的字符串会原样输出,里面包含的特殊字符和变量不会被解析
如果双引号中包含数组变量中的几种情况
//我们先定义以下数组
[php]
1. $arr=array(
2. 'one'=>array(
3. 'name'=>'jiangtong',
4. 'sex'=>'男'
5. ),
6. 'two'=>'zhaohaitao',
7. 'three'=>'fanchangfa'
8. );
上面是的数组中第一个元素二维的,后两个是一维的,我们访问一维的时候下面几种方式:
[php]
1. echo "$arr[two]"//key没有单引号
2. echo "$arr['two']"//key有单引号 会出错,如果我们改成 echo "{$arr['two']}"; 则可以正确输出结果
3. echo "{$arr[two]}"//有双大括号,但是key没有单引号 这种情况PHP会先寻找有没有常量banana,有的话则将其替换,由于没有two常量则出错
可见在访问一维数组的时候 要么不加key不加引号(考虑到第三种情况啊),加了就要被{}括起来,可以全不加。
多维数组测试
[php]
1. echo "$arr[one][name]"; //输出结果为Array[name] 可见它返回了一个数组,只解析了一维
2. echo"{$arr['one']['name']}";//输出结果为jiangtong
在多维数组的访问中必须使用了大括号key必须使用双引号括起来
数组类型
在字符串类型中已经提到,被大括号括起来的,如果不加key引号,是合法的,那么PHP首先会查找是否有名为key的常量,有的话就会被替换,没有的话会产生一个找不到常量的警告才按普通字符串处理,所以建议大家一定加单引号
转换成数组使用(array)type 或者array(type) ,但是如果将只有一个值的转换成数组,会得到一个元素的数组,且下标为0,将NULL转换成数组会得到空的数组
我们可以在遍历数组的时候改变数组的值,在PHP5.0以上可以使用引用实现
[php]
1. $arr=array('a','b','c','d','e' );
2. foreach($arr as &$value)
3. {
4. $value=strtoupper($value);
5. echo $value;
6. }//输出结果 ABCDE
Object对象类型
实例化对象我们使用new 加入有一个person类,我们可以通过以下方式
[php]
1. $objPerson=new person();
强制转换 (object): 如果将一个对象转化成对象那么它没有任何改变,对于其他任何值将会实例化一个stdclass的对象,如果该值为NULL,则会实例化一个空对象,如果 将数组转换成对象那么会将数组的key作为对象的属性,value为属性值,其他类型的值则名为scalar的成员变量包含该值
[php]
1. $arr=array('one'=>'a','two'=>'b' );
2. $obj=(object)$arr;
3. echo $obj->one //输出结果为a;
注:这是由key的数组如果没有字符key的数组,我不知道如何访问,谁知道希望告诉小弟一下,谢谢。
对于其他值
[php]
1. $obj1=(object)'jiang';
2. echo $obj1->scalar;//输出结果jiang
NULL 空类型
null大小写不敏感,NULL类型只有一个取值,表示一个变量没有值,下面三种情况变量被认为为NULL
1.被赋值为NULL
2.尚未被赋值
3.被unset();
摘自 jt521xlg的专栏

PHP在現代Web開發中仍然重要,尤其在內容管理和電子商務平台。 1)PHP擁有豐富的生態系統和強大框架支持,如Laravel和Symfony。 2)性能優化可通過OPcache和Nginx實現。 3)PHP8.0引入JIT編譯器,提升性能。 4)雲原生應用通過Docker和Kubernetes部署,提高靈活性和可擴展性。

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP和Python各有優勢,適合不同場景。 1.PHP適用於web開發,提供內置web服務器和豐富函數庫。 2.Python適合數據科學和機器學習,語法簡潔且有強大標準庫。選擇時應根據項目需求決定。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP成為許多網站首選技術棧的原因包括其易用性、強大社區支持和廣泛應用。 1)易於學習和使用,適合初學者。 2)擁有龐大的開發者社區,資源豐富。 3)廣泛應用於WordPress、Drupal等平台。 4)與Web服務器緊密集成,簡化開發部署。

PHP在現代編程中仍然是一個強大且廣泛使用的工具,尤其在web開發領域。 1)PHP易用且與數據庫集成無縫,是許多開發者的首選。 2)它支持動態內容生成和麵向對象編程,適合快速創建和維護網站。 3)PHP的性能可以通過緩存和優化數據庫查詢來提升,其廣泛的社區和豐富生態系統使其在當今技術棧中仍具重要地位。

在PHP中,弱引用是通過WeakReference類實現的,不會阻止垃圾回收器回收對象。弱引用適用於緩存系統和事件監聽器等場景,需注意其不能保證對象存活,且垃圾回收可能延遲。

\_\_invoke方法允許對象像函數一樣被調用。 1.定義\_\_invoke方法使對象可被調用。 2.使用$obj(...)語法時,PHP會執行\_\_invoke方法。 3.適用於日誌記錄和計算器等場景,提高代碼靈活性和可讀性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver Mac版
視覺化網頁開發工具

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),