(二)php的常量和变量
【php在命令行下接收参数】
如果在命令行调试php,传入的参数通过$argv获取,注意其中包含了文件名这一个元素,数组中元素的个数通过$argc获取。
【可变变量】
指的是变量的名称可变,变量的标识符可以由另一个变量的值来代替。
例如:第二个语句是为argv1这个变量赋值。
<?php $varName = 'argv1'; $$varName = 'value1'; var_dump($argv1); ?>
【常量】
使用define定义,不可删除和修改,调用时直接写名称。define还有三参数的版本,第三个参数代表是否大小写不敏感,默认为false。
<?php define('pi',3.14); echo pi; ?>技巧:先检查常量有没有被定义再定义,使用defined函数:
<?php if(!defined('pi')) define('pi',3.14); else echo 'pi has been defined<br>'; ?>对于有特殊符号的常量,需要使用constant函数来调用,注意这时常量名应该加引号,例如:
<?php if(!defined('= =')) define('= =','puzzled'); else echo 'pi has been defined<br>'; echo constant('= ='); ?>
获取已经定义的所有常量:
<?php var_dump(get_defined_constants()); ?>
【魔术变量】
__LINE__获取当前所在的行,__FILE__获取当前路径。
一个应用:
利用str_replace函数替换文件中的文件名为路径+文件名来保证文件路径变化仍可以访问。
str_replace(<要查找的值>,<替换为的值>,<被搜索的字符串>,<替换计数变量(可选)>);
<?php define('ROOT',str_replace('a.php','',__FILE__)); echo ROOT; ?>
【进制】
在数字前加0是八进制,加0x是十六进制。
【字符串类型】
双引号与单引号均可,但是双引号可以解析内部变量,但是单引号效率高。
双引号解析变量:{ }可以保证分开变量名与其它部分。
<?php $name = "test"; echo "username is {$name}"; ?>