Blogger Information
Blog 29
fans 1
comment 0
visits 23078
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php常量和变量
阿心
Original
410 people have browsed it

变量作用域

  1. <?php
  2. //超全局变量不需要定义/初始化。$GLOBALS $名称;
  3. $siteName="这是一个名称";
  4. // 全局变量会自动注册也为超全局变量数组$GlOBALS的一个值
  5. // 超全局变量不受作用域限制
  6. print_r ($GLOBALS['$siteName']);
  7. //声明函数,创建作用域
  8. function getInfo(){
  9. //定义函数为私有变量:$private
  10. //使用超全局变量
  11. $private=$GLOBALS['$siteName'];
  12. //函数直接访问超全局变量
  13. echo $_SERVER['SCRIPT_NAME'];
  14. //返回
  15. return $private;
  16. }
  17. getInfo();
  18. echo "<hr>";
  19. // 直接输入
  20. echo $_SERVER['SCRIPT_NAME'];
  21. echo "<hr>";

静态变量和动态变量区别

  1. <?php
  2. //1.动态变量:也叫私有变量
  3. //namespace表示命名空间
  4. //同一个文件允许有多个命名空间,但是不允许有同一个函数
  5. namespace ns1;
  6. function test():float
  7. {
  8. //在动态变量中,每次使用都会初始化。
  9. $sum=0 ;
  10. $sum = $sum + 1;
  11. return $sum;
  12. }
  13. //所以输出不管多少次结果,都是初始化的那个结果就是$sum+1的结果”1“,
  14. echo test()."<br>";
  15. echo test()."<br>";
  16. echo test()."<br>";
  17. echo "<hr>";
  18. #全局变量
  19. namespace bb;
  20. $sum=0;
  21. function test():float
  22. {
  23. global $sum;
  24. $sum=$sum+1;
  25. return $sum;
  26. }
  27. echo test()."<br>";
  28. echo test()."<br>";
  29. echo test()."<br>";
  30. echo "<hr>";
  31. //局部变量:只在函数被调用才初始化,更新一次就不更新了
  32. //静态变量:可理解为“伪全局变量”
  33. //实现函数多次调用共享数据
  34. namespace cc;
  35. function test():float{
  36. static $sum;
  37. $sum=$sum+1;
  38. return $sum;
  39. }
  40. echo test()."<br>";
  41. echo test()."<br>";
  42. echo test()."<br>";
  43. echo "<hr>";
  44. //变量本质:数据共享
  45. //函数本质:代码共享
  46. $num=50;
  47. echo ($num+1)."<br>";
  48. echo $num+2;

变量过滤器

  1. <?php
  2. //filter_list返回包含所有得到支持的过滤器的一个数组
  3. //$filter过滤器
  4. foreach (filter_list() as $filter){
  5. //该函数的结果不是过滤器 ID,而是过滤器名称。请使用 filter_id() 函数来获取过滤器 ID。
  6. echo $filter.'=>'.filter_id($filter)."<br>";
  7. }
  8. echo '<hr>';
  9. //打印出过滤器名称(不包含ID)
  10. print_r(filter_list());
  11. echo '<hr>';
  12. //过滤单个变量使用filter_var;
  13. $age=60;
  14. if(filter_var($age,FILTER_VALIDATE_INT)):
  15. echo "是个整数";
  16. endif;
  17. echo '<hr>';
  18. //限制范围
  19. if(filter_var($age,FILTER_VALIDATE_INT,['options'=>['min_range'=>10,'max_range'=>50]])):
  20. echo $age;
  21. else:
  22. echo "输入有误";
  23. endif;
  24. echo '<hr>';
  25. $email='123@qq.com';
  26. var_dump(filter_var($email,FILTER_VALIDATE_EMAIL));
  27. echo '<hr>';
  28. var_dump(filter_var($email,247));
  29. echo '<hr>';
  30. //过滤多个变量filter_var_array()
  31. var_dump(filter_var_array([100,'php',FILTER_VALIDATE_INT]));
  32. echo '<hr>';
  33. //检测是否存在外部变量filter_has_var()
  34. //如URL的$_GET提交参数:123.com/index.php?id=1&name=admin
  35. //提交参数方式:INPUT_GET,INPUT_POST,INPUT_COOKIE,INPUT_SEVER,INPUT_ENV
  36. //示例:127.0.0.1/index.php?p=1
  37. var_dump(filter_has_var(INPUT_GET,'page'));
  38. echo 'get变量='.$_GET['P'];
  39. echo '<hr>';
  40. //过滤外部变量filter_input。进行限制=>1
  41. var_dump(filter_input(INPUT_GET,'P',FILTER_VALIDATE_INT,['options'=>['min_range'=>1]]));
  42. echo '<hr>';
  43. //验证多个外部变量filter_input_array()
  44. $args = [
  45. 'username'=> FILTER_SANITIZE_STRING,
  46. 'username'=> FILTER_SANITIZE_STRING,
  47. 'email'=> FILTER_VALIDATE_EMAIL,
  48. 'age'=> ['filter'=> FILTER_VALIDATE_INT,'flags'=> FILTER_REQUIRE_SCALAR,'options'=> ['min_range'=>10]],
  49. 'blog'=>FILTER_VALIDATE_URL,
  50. ];
  51. var_dump(filter_input_array(INPUT_GET,$args));

常量不需要更新数据

  1. <?php
  2. //打印出当前系统有哪些常量
  3. //print_r(get_defined_constants());
  4. //可以分组查看
  5. //print_r(get_defined_constants(true));
  6. define('APP_PATH',__DIR__.'/app/admin/');
  7. echo APP_PATH;
  8. print_r(get_defined_constants(true)['user']);

定义常量 。 常量请使用””或者’’包起来。

  1. <?php
  2. //define()函数
  3. define('LECTRUE','老张');
  4. const COURES='php';
  5. //常量不受作用域限制
  6. function test(){
  7. echo LECTRUE."教我们学".COURES."<br>";
  8. define('SEX','男性');
  9. echo SEX;
  10. }
  11. test();
  12. echo "<hr>";
  13. //在流程控制中,difine可以用。const不能用
  14. if(true){
  15. define('EMAIL','123QQ.COM');
  16. }
  17. echo EMAIL;
  18. echo "<hr>";
  19. //const在类中,创建类常量。
  20. class demo{
  21. const TITLE="php中文网";
  22. //define不可以在类使用
  23. //define('A',100);
  24. }
  25. echo demo::TITLE;
  26. //echo demo::A;
  27. //常量通常只允许用标量进行初始化
  28. //标量:单值变量,字符串,数值,布尔,NULL
  29. //PHP7.0+支持数组初始化常量
  30. const DB_LINKS=[
  31. 'host'=>'localhost',
  32. 'name'=>'root',
  33. 'password'=>'root',
  34. 'db'=>'test',
  35. 'charset'=>'utf8',
  36. ];
  37. echo '<pre>'.print_r(DB_LINKS,true).'</pre>';
  38. //返回一个常量的值使用constant()
  39. echo constant("LECTRUE");
  40. echo LECTRUE."<BR>";
  41. $mail2='EMAIL';
  42. echo constant($mail2);
  43. echo "<br>";
  44. define('','我是个空常量');
  45. echo '';
  46. //constant可以输出空值常量
  47. echo constant('');
  48. define('A','定义常量我才能显示');
  49. echo A;

魔术常量

  1. <?php
  2. echo '当前代码的行号是:'.__LINE__."<BR>";
  3. echo '当前文件的绝对路径和文件名称是:'.__FILE__.'<BR>';
  4. echo '当前文件所在目录是:'.__DIR__."<br>";
  5. echo '当前文件目录和文件'.__DIR__.'/demo6.php';
  6. echo '<hr>';
  7. //使用魔术常量显示当前函数名称
  8. function test(){
  9. echo __FUNCTION__;
  10. }
  11. test();
  12. echo '<hr>';
  13. class D{
  14. public function index(){
  15. echo __METHOD__;
  16. }
  17. }
  18. (new D)->index();

总结:初学者一定要多注意符号不要写出了,即使是对照的抄,一不小心也会出错。只要多多写下代码,我相信也一定可以学到的。在学习过程中,也除了抄,还可以尽量的去尝试下其他方式方法!

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:照抄都会错, 是不是好打击信心? 放心, 咱们都是这样过来的
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post