1.1:类型
变量有8种类型,不必死记硬背,在实际运用中加深理解
1) 整型 [integer] 数学中的整数 2) 浮点型 [float,double] 数学中的小数 3) 字符串 [string] 一串字符 4) 布尔 [boolean] 真假 5) 数组 [array] 键值对复合数据 6) 对象 [Object] [在后面的面向对象中会学到] 7) NULL 没有值 8) 资源 [resource] “吸管”
NULL是什么? NULL类型只标注了它的类型为NULL
它的值的字段是空的,NULL是没有值的
$a = 3;//整型 $b = 3.14;//浮点型 $c = null;//null型 $d = 'hello';//字符串 $e = true;//布尔型 echo $D;
变量名称的命名规范:
[a-zA-Z0-9]和下划线(_)
1)变量名是区分大小写的
2)不能以数字开头
1.2:变量检测
echo 一个不存在的变量,会报notice级别的错误,
所以要检测一下这个变量是否存在
如何检测变量是否存在?
isset — 检测变量是否设置
已声明的变量返回 true,未声明的变量返回 false.
检测一个变量是否存在: 就是看花名册中是否有这个变量名
$b = null; $c = false; $d=0; $e=''; //分别检测上述变量是否存在 if(isset($a)) { echo '变量b存在'; }else{ echo '变量b不存在'; }
对于值为 NULL 的变量,也返回 false,因为null没有值 未曾声明的变量,当然也不存在
1.3:类型检测
检测一个变量,php是把它存储成一个什么样的类型的 对于php而言获取它的变量类型是很简单的 因为箱子里面已经存储了它的变量类型
gettype — 获取变量的类型 [现成的系统函数]
$a = false; echo gettype($a); $b = "1"; echo gettype($b); $c = 1.11; echo gettype($c); $d = 'hello'; echo gettype($d); $e = null; echo gettype($e);
判断变量是否是某种类型
is_float()[is_double] 检测变量是否为浮点型 is_int()[is_integer] 检测变量是否为整型 is_string() 检测变量是否为字符串 is_object() 检测变量是否为对象 is_array() 检测变量是否为数组 is_resource 检测变量是否为资源类型 is_bool 检测变量是否是布尔型 is_null 检测变量是否为 NULL $a = 'hello'; if(is_string($a)) { echo 'a是字符串'; }else{ echo 'a不是字符串'; }
1.4:调试打印变量
echo 字符串,数字
print_r 打印层次化的数据,比如:数组,对象
var_dump 打印变量的类型及其值[调试代码比较方便]
$a = 'hello'; $b = array(1,2,"3"); $c = false; $d = null; $e=18; $f = true; //布尔型的true会打印出1,false和null什么都不显示 echo $a,$b,$c,$d,$e,$f,'<hr>'; //print_r 打印层次化的数据,比如数组和对象 print_r($b); print_r($c); print_r($d); print_r($f); //不要用echo和print_r打印布尔型的值,因为会干扰我们 //用var_dump打印布尔和null var_dump($c); var_dump($d);
1.5:类型转换
PHP中,变量的类型是可以随时转换的,非常的灵活 最常见的是字符转与数字之间的相互转换, 或者是数字/字符串 -> 布尔值的转换
字符串到数字的转换
从左到右截取,直道碰到不合法的数字,截取下来的部分转换为数字
$a = '12'; $b=$a+3; var_dump($b); $a = '12.5hello'; //$a = '12.5hello99'; $b=$a+3; var_dump($b); $a = 'word12.5hello'; $b=$a+3; var_dump($b);
数字到字符串的转换
$a = 123; $b = $a . 'hello'; var_dump($b);
数字/字符串/数组等到布尔型值的转换
$b=3; if($b){ echo 'b is true'; }else{ echo 'b is false'; }
if判断的应该是布尔型的值,那数字3被转成布尔型来理解 那它到底应该理解为真还是假呢?
以下值,都被理解为成布尔型值的假
'','0',0,0.0,false,NULL,array(); 而其它值,都被当成布尔型的真
if('' == false) { echo '空字符串果然假'; }
empty(var) — 检查一个变量是否为空
如果 var 是非空或非零的值,则 empty() 返回 FALSE
换句话 说,""、0、0.0、"0"、NULL、FALSE、array(); 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE
$arr = array(); if(empty($arr)) { echo '变量为空'; }
1.6:赋值
赋值有两种方式 :
1.传值赋值;(两个人看两台电视同一个台)
2.引用赋值;(两个人看同一台电视)
1.传值赋值
变量名其实不是贴在盒子上的,而是有个变量表(像班级的花名册) 变量值和变量类型放在盒子里面;变量表中的变量名指向它所对应的盒子.
$li = 23; $wang = $li; echo $li, '~', $wang;
改变$li的值,$wang的值会发生变换吗
$li = 99; echo $li, '~' ,$wang;
这个赋值过程,是把$li的值,赋给$wang
2.引用赋值
$a = 'tvb'; $b = &$a; //$a,$b共同指向同一个值 echo $a,'~',$b;
改变$a的值
$a = 'btv'; echo $a,'~',$b;
1.7:销毁
为什么要销毁变量?
因为,有时比较大的数组,或者比较大的对象 特别的GD画图时,比较耗费资源,将它unset掉,可以及时释放出内存
unset(变量名); 销毁指定的变量 首先从变量表(花名册)中删除变量名,再找到它对应的盒子也删除掉.
$a=99; //unset($a); if(isset($a)) { echo 'a存在'; }else{ echo 'a不存在'; }
注意: 引用赋值,如果两个变量指向同一个盒子,当销毁其中一个变量的时候,盒子是不能被销毁掉的.
$a=99; $b = &$a; unset($a); echo $a,$b;//报一个notice的错误
重新给$a赋值一个新值
$a=18; echo $a,$b;
1.8: 动态变量名
动态变量名,可以体现php非常灵活的一个地方
用变量的值去做另一个变量的名
$laoda = 'liubei'; echo $laoda , '<br >'; $paihang = 'laoda'; echo $paihang , '~' , $$paihang; //排行 $rank = 'paihang'; echo $$$rank;
以上是有关PHP变量的介绍的详细内容。更多信息请关注PHP中文网其他相关文章!

tomakephpapplicationsfaster,关注台词:1)useopcodeCachingLikeLikeLikeLikeLikePachetoStorePreciledScompiledScriptbyTecode.2)MinimimiedAtabaseSqueriSegrieSqueriSegeriSybysequeryCachingandeffeftExting.3)Leveragephp7 leveragephp7 leveragephp7 leveragephpphp7功能forbettercodeefficy.4)

到ImprovephPapplicationspeed,关注台词:1)启用opcodeCachingwithapCutoredUcescriptexecutiontime.2)实现databasequerycachingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandredececonnection.4 limitsclection.4.4

依赖注入(DI)通过显式传递依赖关系,显着提升了PHP代码的可测试性。 1)DI解耦类与具体实现,使测试和维护更灵活。 2)三种类型中,构造函数注入明确表达依赖,保持状态一致。 3)使用DI容器管理复杂依赖,提升代码质量和开发效率。

databasequeryOptimizationinphpinvolVolVOLVESEVERSEVERSTRATEMIESOENHANCEPERANCE.1)SELECTONLYNLYNESSERSAYCOLUMNSTORMONTOUMTOUNSOUDSATATATATATATATATATATRANSFER.3)

phpisusedforsenderemailsduetoitsbuilt-inmail()函数andsupportiveLibrariesLikePhpMailerandSwiftMailer.1)usethemail()functionforbasicemails,butithasimails.2)butithasimimitations.2)

PHP性能瓶颈可以通过以下步骤解决:1)使用Xdebug或Blackfire进行性能分析,找出问题所在;2)优化数据库查询并使用缓存,如APCu;3)使用array_filter等高效函数优化数组操作;4)配置OPcache进行字节码缓存;5)优化前端,如减少HTTP请求和优化图片;6)持续监控和优化性能。通过这些方法,可以显着提升PHP应用的性能。

依赖性注射(DI)InphpisadesignPatternthatManages和ReducesClassDeptions,增强量产生性,可验证性和Maintainability.itallowspasspassingDepentenciesLikEdenceSeconnectionSeconnectionStoclasseconnectionStoclasseSasasasasareTers,interitationApertatingAeseritatingEaseTestingEasingEaseTeStingEasingAndScalability。

cachingimprovesphpermenceByStorcyResultSofComputationsorqucrouctationsorquctationsorquickretrieval,reducingServerLoadAndenHancingResponsetimes.feftectivestrategiesinclude:1)opcodecaching,whereStoresCompiledSinmememorytssinmemorytoskipcompliation; 2)datacaching datacachingsingMemccachingmcachingmcachings


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

SublimeText3汉化版
中文版,非常好用

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具