博主信息
博文 17
粉丝 0
评论 0
访问量 15222
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
变量与常量学习心得
越努力越幸运
原创
800人浏览过

//demo01

     //超全局变量:

     //$GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION,$_REQUEST,$_ENV

    

    namespace ns1;

     $sitename='php.cn';

    

     function getinfo():string{

     global $sitename;

     $private=$sitename;

     return $private;

     }

    

     echo getinfo().'<br>';

    

     //另一种写法:有意思的是:可以打印一下:$GLOBALS,可以看到当前所有超全局变量;

     function getinfo1(){

     $private=$GLOBALS['sitename'];

     return $private;

     }

     echo getinfo1().'<br>';

    

     //显示当前文件名;

    

     echo $_SERVER['SCRIPT_NAME'].'<br>';

    

    

  //demo02

    namespace ns2;

    

     function test1():float{

     $sum=0;

     $sum++;

     return $sum;

    

     }

     echo test1().'<br>';

     echo test1().'<br>';

     echo test1().'<br>';

    

    namespace ns3;

    

     $sum=0;

     function test1():float{

     global $sum;

     $sum++;

     return $sum;

    

     }


     echo test1().'<br>';

     echo test1().'<br>';

     echo test1().'<br>';

    

    

    namespace ns4;//为了尽量不占用全局变量,ns3可以采用这样的方法:做无限分类时要用到!!!

    

     use ns2\test1;

     function test1():float{

     static $sum=0;//局部静态变量;特点:只在第一次赋值时,变量被初始化,今后,再也不执行这行语句;也称:伪全局变量;作业:实现函数在被多次调用时,共享数据;

     $sum++;

     return $sum;

    

     }

     echo test1().'<br>';

     echo test1().'<br>';

     echo test1().'<br>';

    

    

 //demo03

    

     //显示所有变量过滤器:

     foreach (filter_list() as $aa){

     echo $aa.'===>'.filter_id($aa).'<br>';

     }

    

     $age=30;

     var_dump(filter_var($age,FILTER_VALIDATE_INT,['options'=>['min_range'=>18,'max_range'=>60]]));

    

     echo '<br>';

    

     $email='admin@php.cn';

     var_dump(filter_var($email,FILTER_VALIDATE_EMAIL));

    

     echo '<br>';

    

     var_dump(filter_var_array(['php',100],FILTER_VALIDATE_INT));

    

     //检测当前url中?后面是否带外部变量:''中填写?后的键名;如:...?id=1;那么就写id;

     //共5个:INPUT_GET,INPUT_POST,INPUT_COOKIE,INPUT_SERVER,INPUT_ENV

     var_dump(filter_has_var(INPUT_GET,''));

    

     echo '<br>';

    

     //控制外部变量的取值范围(和age那个相似)

     var_dump($_GET['p']);

     var_dump(filter_input(INPUT_GET,'p',FILTER_VALIDATE_INT,['options'=>['min_range'=>1,'max_range'=>60]]));

     echo filter_input(INPUT_GET,'p',FILTER_VALIDATE_INT,['options'=>['min_range'=>1,'max_range'=>60]])?'页码正确':'页码非法';

     echo '<br>';

    

     //同时验证多个外部变量

     $args=[

     'username'=>FILTER_SANITIZE_STRING,//字符串,如有html标签,则删除;

     'email'=>FILTER_VALIDATE_EMAIL,//

     'age'=>['filter'=>FILTER_VALIDATE_INT,'flags'=>FILTER_REQUIRE_SCALAR,'options'=>['min_range'=>18,'max_range'=>60]],

     //age中:flags:年龄必须是单值标量

     'blog'=>FILTER_VALIDATE_URL

     ];


     var_dump(filter_input_array(INPUT_GET,$args));

    

    

//demo04

     //打印所有常量(true参数:表示以分组形式)

     print_r(get_defined_constants(true));

    

     define('APP_PATH',__DIR__,'/app/admin');//这个定义会放到所有常量的['user']键下面

     echo APP_PATH;

    

     print_r(get_defined_constants(true)['user']);

     echo '<hr>';

    

     //定义常量:如果是数组,需要用const;

     define('LECTURE','朱老师');//不能用在类中,类中必须用const;

     const COURSE='php';//不能用在函数中,不能用在流程控制中,但是:const可以用在类中,创建类常量!

    

     function test(){

     echo LECTURE.'教'.COURSE.'<br>';

     }

     test();

    

     class Demo{

     const HELLO='alibaba.com';

     }

     echo Demo::HELLO.'<br>';

//demo05

     const DB_LINKS=[

     'host'=>'localhost',

     'username'=>'root',

     'password'=>'root',

     'charset'=>'utf8'

     ];

    

     echo '<pre>'.print_r(DB_LINKS,true).'<pre>';

    

     $aa='LECTURE';//constant函数支持存储常量的变量,但必须以字符串存在变量中(没有引号就报错);

     echo constant($aa);

     echo '<br>';

    

     //constat还能找出以空为键的常量:

     define('','其实我也是一个常量');

     echo constant('');

    

     echo '当前行号'.__LINE__.'<br>';

     echo '当前目录'.__DIR__.'<br>';

     echo '当前文件'.__FILE__.'<br>';

    

     function a(){

     echo __FUNCTION__;

     }

    

     a();

    

     echo '<hr>';

    

     class D{

     public function index(){

     echo __METHOD__;

     }

     }

    

     $m=new D();

     $m->index();

    

    

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学