博客列表 >php变量学习总结

php变量学习总结

麦穗
麦穗原创
2020年04月18日 17:45:23685浏览

PHP变量学习总结

  • 超全局变量 GLOBALS

    1. $username1= 'Davy';
    2. echo '<pre>' . print_r($GLOBALS['username1']). '</pre>' .'<hr>';
    3. function getInfo() : string
    4. {
    5. // 方法1
    6. global $username1;
    7. $username2= $username1;
    8. // 方法2
    9. $username2 = $GLOBALS['username1'];
    10. return $username2;
    11. }
    12. echo getinfo();
    13. echo '<hr>';

  • 静态变量
    1. namespace n1;//命名空间
    2. function test1() : float
    3. {
    4. // 私有变量
    5. $sum = 0;
    6. $sum =$sum+ 1;
    7. return $sum;
    8. }
    9. echo test1();
    10. echo test1();
    11. echo test1();
    12. echo '<hr>';
    13. namespace n2;
    14. $sum = 0;//全局变量
    15. function test2() : float
    16. {
    17. global $sum;
    18. $sum =$sum+ 1;
    19. return $sum;
    20. }
    21. echo test2();
    22. echo test2();
    23. echo test2();
    24. echo '<hr>';
    25. namespace n3;
    26. function test3() : float
    27. {
    28. //局部静态变量 , 推荐使用这种
    29. static $sum = 0 ;
    30. $sum =$sum+ 1;
    31. return $sum;
    32. }
    33. echo test3();
    34. echo test3();
    35. echo test3();
    36. echo '<hr>';
    37. // 变量的本质是数据共享
    38. // 函数的本质是代码共享
  • 变量过滤器filter
    1. // foreach()是用来遍历数据的
    2. foreach(filter_list() as $filter) {
    3. echo $filter . '====>' . filter_id($filter).'<br>';
    4. }
    5. echo '<hr>';
  • 过滤单个变量filter_var
    1. $age = 30;//它会自动转化为字符串$age = '30';
    2. $age = '30';
    3. $age = 200;//超过设置大小的范围,就是false
    4. var_dump(filter_var($age,FILTER_VALIDATE_INT , ['options'=>['min_range'=>18,'max_range'=>60]]));
    5. echo '<hr>';
    6. $email = '123456@qq.com';
    7. $email = '123456@';//非法邮箱,显示false
    8. //var_dump(filter_var($email,FILTER_VALIDATE_EMAIL));
    9. var_dump(filter_var($email,274));//用ID来代替FILTER_VALIDATE_EMAIL,是一样的
    10. echo '<hr>';
    11. // 数组过滤单个变量filter_var_array()
    12. var_dump(filter_var_array([100,'php'],FILTER_VALIDATE_INT));
    13. echo '<hr>';
  • 检测是否存在指定的外部变量filter_has_var()
    1. // INPUT_GET: 表示要检测的是$_GET,就是get参数,其实就是get请求
    2. // INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV
    3. var_dump(filter_has_var(INPUT_GET,'p' ));
    4. echo 'get变量p='. $_GET['p'];
    5. echo '<hr>';
  • 访问外部变量过滤器
    1. var_dump(filter_input(INPUT_GET,'p',FILTER_VALIDATE_INT,['options'=>['min_range'=>1]]));
    2. echo filter_input(INPUT_GET,'p',FILTER_VALIDATE_INT,['options'=>['min_range'=>1]]) ? '页码正确' : '页码错误';
    3. echo '<hr>';
    4. //同时验证多个外部变量: filter_input_array()
    5. $args = [
    6. 'username' => FILTER_SANITIZE_STRING,
    7. 'email' => FILTER_VALIDATE_EMAIL,
    8. 'age' => ['filter' => FILTER_VALIDATE_INT, 'flags'=>FILTER_REQUIRE_SCALAR, 'options' => ['min_range' => 18]],
    9. 'blog' => FILTER_VALIDATE_URL,
    10. ];
    11. var_dump(filter_input_array(INPUT_GET,$args));
  • 地址栏中输入?p=-1

  • 地址栏中输入?p=1

  • 查看系统的长量
    1. print_r(get_defined_constants());
  • 预定义常量
    1. define('APP_PATH', __DIR__.'\app\admin');
    2. // echo APP_PATH;
    3. print_r(get_defined_constants(true)['user']);
    4. echo '<hr>';
  1. // 定义常量
  2. define('STUDENT', '麦穗');
  3. const COURSE = 'PHP' ;
  4. //常量不受作用域限制
  5. function test1(){
  6. echo STUDENT . '学:' . COURSE . '<br>';
  7. // define可以用于函数中,const不行
  8. define('SEX' , '男');
  9. echo SEX;
  10. }
  11. test1();
  12. echo '<hr>';
  13. // define可以用于流程控制中,const不行
  14. if(true){
  15. define('AGE', 18);
  16. echo AGE;
  17. }
  18. echo '<hr>';
  19. // const可以用在类常量中 , define不行
  20. class Demo{
  21. const HELLO= '你好!';
  22. }
  23. echo Demo::HELLO.'<br>';
  24. echo '<hr>';
  25. // 常量通常只允许标量进行初始化
  26. const DB_LINKS = [
  27. 'host'=>'localhost',
  28. 'username'=>'root',
  29. 'password'=>'root',
  30. 'charset'=>'utf8',
  31. ];
  32. echo '<pre>'.print_r(DB_LINKS,true).'</pre>';
  33. echo '<hr>';

  • constent()
    1. /constant()
    2. $constantName = 'STUDENT';
    3. echo constant($constantName);
    4. echo '<hr>';
    5. define('USER_NAME' , '我也是常量1');
    6. define('' , '我也是常量2');
    7. echo USER_NAME;
    8. echo ''; //空字符串是一个正确的常量,但是打印不出来,要用constant()
    9. echo constant('');
  • 魔术常量
    1. echo '当前行号:' . __LINE__ . '<br>';
    2. echo '当前文件:' . __FILE__ . '<br>';
    3. echo '当前目录:' . __DIR__ . '<br>';
    4. function hello(){
    5. echo __FUNCTION__;//当前函数名
    6. }
    7. hello();
    8. echo '<br>';
    9. class D{
    10. public function index(){
    11. echo __METHOD__;//当前类方法名称
    12. }
    13. }
    14. (new D)->index();

学习总结

  1. 还是需要继续下功夫,C语言会一点,好像和C语言差别有点大,不过没事,我喜欢接触新的知识,每天学习一点,希望在3个月后会有新的突破
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议