ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
3、PHP中变量和常量的区别 [TOC] #### 关于变量: 1、什么是变量:与Javascript类似,PHP中的变量相当于开辟了一块儿内存空间,变量的数据类型可以是string、num、boolean等。 2、定义变量的方法:$符号加英文字母(区分大小写)、数字或下划线,但是不能以数字开头。变量名称可以是中文,但不推荐使用中文。 3、可变变量:把一个变量的值作为另一个变量的名,代码如下: $user = 'fxxy'; $$user = '疯行西月'; echo $fxxy;//疯行西月 4、外部变量:存储外部传入的值的变量: $_GET[]:在地址栏中会显示传入的值,不安全。 <form action="" method="get"> <input type="text" name="username"> <input type="submit" value="提交"> </form> <?php echo $_GET[username]; ?> $_POST[]:在地址栏中不显示传入的值,比较安全,可以上传大容量的文件,比如图片、office文档等 <form action="" method="post"> <input type="text" name="username"> <input type="submit" value="提交"> </form> <?php echo $_POST[username]; ?> $_REQUEST[]:同时接收get和post方式传递的参数(借用以上代码),但是传输速度比较慢。 5、定义变量时“传址”与“传值”的区别: 传值:b变量引用a变量的值,当a变量改变时,b变量不会改变。 <?php $username = 'fxxy'; $webname = $username; $username = '疯行西月'; echo $webname;//fxxy ?> 传址(&):b变量引用a变量的值,当a变量改变时,b变量也改变。 <?php $username = 'fxxy'; $webname = &$username; $username = '疯行西月'; echo $webname;//疯行西月 ?> # 关于常量: 1、什么是常量:值始终保持不变的单元(常量一经定义,不能随便改变它的值)。 2、常量定义方法:define("常量名","值"),为了与变量区别开来,常量名一般使用大写。 <?php define('WEBNAME','fxxy'); define('WEBNAME','baidu'); echo WEBNAME; //fxxy ?> 3、常量的值只能是标量(字符串、整型、浮点型、布尔型),不能是数组或函数。 4、函数内部可以读取函数外部的常量;函数内部不能读取函数外部的变量! <?php define('WEBNAME','fxxy'); $webname = 'fxxy.com'; function fn(){ echo $webname.'<br/>';// echo WEBNAME;//fxxy } fn(); ?> 函数外部可以读取函数内部的常量(在此之前函数已经运行了),函数外部不能读取函数内部的变量,除非定义成global全局变量。 <?php function fn(){ $webname = 'fxxy'; define('WEBNAME','fxxy is good'); } fn(); echo $webname.'<br/>'; echo WEBNAME; ?> 5、默认的系统常量: echo M_PI."<br/>";//301415926 echo PHP_OS."<br/>";//操作系统 echo PHP_VERSION."<br/>";//php版本 6、魔术常量(所处环境不同,返回的值也不同) <?php echo __LINE__;//当前代码在第几行 echo __FILE__;//当前文件系统路径 function fn(){ echo __FUNCTION__;//当前函数的函数名称 } fn(); ?> class Channel{ public function show1(){ return __CLASS__;//获得当前类的类名 } public function show2(){ return __METHOD__;//获得当前类的方法 } public function show3(){ return __FUNCTION__;//获得当前函数的函数名 } } $channel = new channel(); echo $channel->show1();//Channel echo $channel->show2();//Channel::show2 echo $channel->show3();//show3 dirname()函数或者是__DIR__返回当前文件路径中的目录部分,为了保持兼容,一般用dirname()函数。 DIRECTORY_SEPARATOR表示分隔符。 echo dirname(__FILE__).'<br/>';//D:\wamp\www echo DIRECTORY_SEPARATOR.'<br/>';// \ echo __DIR__.'<br/>';//D:\wamp\www