博客列表 >变量与常量学习心得

变量与常量学习心得

越努力越幸运
越努力越幸运原创
2020年04月18日 19:57:59616浏览

//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 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议