变量基础参考赋值global关键字下面的结果在命令行中有效,请不要在网页php中尝试。..都是坑。Example#1使用global或$GLOBALS下面是网页php文件中的测试结果静态变量只存在于局部函数作用域中,但程序执行离开该作用域时其值不会丢失。如果在声明中将表达式的结果分配给它,将导致解析错误。Example#5使用静态变量的例子变量$bar。"\n";//我是酒吧。回显$foo->$baz[1]。"\n";//我是bar.$start='b';$end='ar';echo$foo->{$start.$结束}。"\n";//我是bar.$arr='arr';echo$foo->$arr[1]."\n";//我是r.echo$foo->{$arr}[1]。"\n";//IamB.?>Warning注意超全局变量不能在PHP函数和类方法中用作可变变量。$this变量也是一个特殊变量,不能动态引用。Constantdefine()函数定义常量。在PHP5.3.0之后,可以使用const关键字在类定义之外定义常量。一旦定义了常量,就不能更改或取消定义。常量只能包含标量数据(布尔值、整数、浮点数和字符串)。注意:与使用define()定义常量相反,使用const关键字定义常量必须在顶部作用域,因为这个方法是在编译时定义的。这意味着const不能用于在函数、循环和if语句中定义常量。与变量不同,常量没有可变常量。如果常量名是动态的,也可以使用函数constant()来获取常量的值。使用get_defined_constants()获取所有已定义常量的列表。运算符算术运算符示例名称结果-$a对$a的负值求反。$a+$b将$a和$b相加。$a-$b减去$a和$b之间的差值。$a*$b乘以$a和$b的乘积。$a/$b除法$a除以$b的商。$a%$b对$a除以$b的余数取模。$a**$bPower在PHP5.6.php中引入,没有可整除性,可以使用floor($a/$b)代替。赋值运算符$b=&$a;//$b是对$a的引用请参阅算术运算符页面(http://www.php.net/manual/en/language.operators.arithmetic.php)AssignmentSameas:$a+=$b$a=$a+$b加法$a-=$b$a=$a-$b减法$a*=$b$a=$a*$b乘法$a/=$b$a=$a/$b除法$a%=$b$a=$a%$b模数见字符串运算符页面(http://www.php.net/manual/en/language.operators.string.php)$a.=$b$a=$a。$b连接参见按位运算符页面(http://www.php.net/manual/en/language.operators.bitwise.php)$a&=$b$a=$a&$b按位与$a|=$b$a=$a|$b按位或$a^=$b$a=$a^$b按位异或$a<<=$b$a=$a<<$b左移$a>>=$b$a=$a>>$b右移按位运算符按位运算符允许对整数中的指定位进行评估和操作。示例名称结果$a&$bAnd(按位与)会将$a和$b中均为1的位设置为1。$a|$bOr(按位或)会将$a或$b中的位设置为1那是1比1。$a^$bXor(按位异或)将$a和$b中的位设置为1,另一个设置为0到1。~$aNot(按位求反)将$a中的位设置为0到1,并且反之亦然。$a<<$bShiftleft将$a中的位向左移动$b次(每次移位意味着“乘以2”)。$a>>$bShiftright将$a中的位向右移动$b次(每次移位意味着“除以2”)。php中的右移是有符号右移(算术右移),没有无符号右移(逻辑右移)。位运算符推荐与二进制整数(如0b100110)结合使用。比较运算符示例名称结果如果$a在类型转换后等于$b,则$a==$b等于TRUE。如果$a等于$b并且它们属于同一类型,则$a===$b为全等TRUE。如果$a在转换后不等于$b,则$a!=$b不等于TRUE。如果$a在转换后不等于$b,则$a<>$b不等于TRUE。如果$a不等于$b,或者它们的类型不同,则$a!==$b不等于TRUE。如果$a严格小于$b,则$a<$b小于TRUE。如果$a严格大于$b,则$a>$b大于TRUE。如果$a小于或等于$b,则$a<=$b小于或等于TRUE。如果$a大于或等于$b,则$a>=$b大于或等于TRUE。$a<=>$b飞船运算符(组合比较运算符)当$a小于、等于或大于$b时返回小于、等于或大于0的整数值。PHP7开始提供。$一个??$b??$cNULL合并运算符从左到右的第一个非NULL操作数。如果两者都未定义且不为NULL,则返回NULL。PHP7开始提供。truevar_dump("1"=="01");//1==1->truevar_dump("10"=="1e1");//10==10->truevar_dump(100=="1e2");//100==100->true?>比较多种类型的操作数1typeoperand2typeresultnullorstringstringconvertNULLFor"",performnumericorlexicalcomparisonboolornullanyothertypeconvertedtobool,FALSE
