Blogger Information
Blog 46
fans 2
comment 0
visits 19145
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
文件包含作用域、类与对象
P粉314265155
Original
357 people have browsed it

HTML 中php代码

  1. <?php
  2. namespace _0812; ?>
  3. // 文件包含
  4. <!DOCTYPE html>
  5. <html lang="zh-CN">
  6. <head>
  7. <meta charset="UTF-8">
  8. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  9. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  10. <title>Document</title>
  11. </head>
  12. <body>
  13. <!--退出 html 进入php -->
  14. <?php
  15. // PHP代码 在服务器执行
  16. // 退出 php 进入html
  17. ?>
  18. <!-- 被包含的是html 直接写 -->
  19. </body>
  20. </html>

文件包含

  1. <?php
  2. namespace _0812;
  3. // 文件包含
  4. // 本质,将外部文件的内容,插入到当前的位置
  5. // include 加载引用
  6. // 相对路径
  7. include 'zuoyeinc/zuoyef1.php';
  8. // echo $username;
  9. echo '<hr>';
  10. // 推荐使用绝对路径 速度更快
  11. include 'zuoyeinc/zuoyef1.php';
  12. echo __DIR__.'/zuoyeinc/zuoyef1.php';
  13. // 斜线 反斜线 统一
  14. echo '<hr>';
  15. echo __DIR__.DIRECTORY_SEPARATOR.'zuoyeinc'.DIRECTORY_SEPARATOR.'zuoyef1.php';
  16. echo '<hr>';
  17. // 简写
  18. // include __DIR__.'/zuoyeinc/zuoyef1.php';
  19. // // 与当前脚本共用一个作用域
  20. // echo $username;
  21. // // $username 导入的失效了 变成小猫了
  22. // $username = '小猫';
  23. // echo $username;
  24. echo '<hr>';
  25. // @var username 声明 后不会报错
  26. echo '<hr>';
  27. // return 接收
  28. // $username= include __DIR__.'/zuoyeinc/zuoyef1.php';
  29. // echo $username;
  30. // return 接收 数组
  31. // list() 解构
  32. $user =include __DIR__.'/zuoyeinc/zuoyef1.php';
  33. list('username'=>$username,'email' => $email ) =$user ;
  34. echo $username ,'----',$email;
  35. echo '<hr>';
  36. echo join(',',$user);
  37. echo '<hr>';
  38. vprintf('%s---%s',$user);
  39. echo '<hr>';
  40. $user =include __DIR__.'/zuoyeinc/zuoyef2.php';
  41. echo $user;
  42. // 虽然路径错了,但是不影响后面的执行 但是require 不执行了 警告错误后面执行
  43. echo '<h1>Hello php.cn</h1>';
  44. echo '<hr>';
  45. // require
  46. // $user =require __DIR__.'/zuoyeinc/zuoyef2.php';
  47. // echo $user;
  48. // // require 不执行了 致命错误后面不执行 直接退出了 一般require用的多
  49. // die('程序中断');
  50. // exit('xxxx');
  51. // echo '<h1>Hello php.cn</h1>';
  52. // 判断文件是否存在
  53. if (file_exists(__DIR__ . '/inc/f12.php')) {
  54. require __DIR__ . '/inc/f12.php';
  55. } else {
  56. exit('文件不存在');
  57. }
  58. // include, require,功能一样,区别在于出错的处理上
  59. // include: 忽略错误,继续执行后面代码, require,直接退出

模块化网站

  1. <?php
  2. namespace _0812;
  3. //快速话 模块化 网站
  4. ?>
  5. <?php
  6. include __DIR__.'/zuoyeinc/header.php';
  7. ?>
  8. <main>
  9. <ul>
  10. <li><a href="">最新技术文章1</a></li>
  11. <li><a href="">最新技术文章2</a></li>
  12. <li><a href="">最新技术文章3</a></li>
  13. <li><a href="">最新技术文章4</a></li>
  14. <li><a href="">最新技术文章5</a></li>
  15. <li><a href="">最新技术文章6</a></li>
  16. <li><a href="">最新技术文章7</a></li>
  17. <li><a href="">最新技术文章8</a></li>
  18. <li><a href="">最新技术文章9</a></li>
  19. <li><a href="">最新技术文章10</a></li>
  20. </ul>
  21. </main>
  22. <?php include __DIR__ . '/zuoyeinc/footer.php';

类声明

  1. <?php
  2. // namespace _0812;
  3. /**
  4. * class: 声明类
  5. * new: 实例化类
  6. */
  7. use _0812\Goods as _0812Goods;
  8. // 面向对象
  9. // 对象是一个容器 是全局成员的一个前缀
  10. // obj.name
  11. // 类 全局成员。声明 class 大驼峰 PascalName
  12. // 1、类声明
  13. class Goods {
  14. }
  15. // 2、类实例化 实例的是对象
  16. // 实例总是与一个类绑定, 对象更通用一些, 在不引起歧义时,实例==对象
  17. $goods =new Goods();
  18. var_dump( $goods);
  19. echo '<hr>';
  20. var_dump( $goods instanceof Goods);
  21. echo '<hr>';
  22. echo gettype($goods).'<br>';
  23. echo '<hr>';
  24. echo get_class($goods).'<br>';
  25. echo '<hr>';
  26. // 动态类
  27. // 控制器 是一个动态类 控制器 名称 出现在url 中
  28. $controller = 'goods';
  29. // $controller = ucfirst('goods');
  30. $obj1 = new $controller ();
  31. var_dump($obj1);
  32. echo '<hr>';
  33. // 动态类
  34. // 控制器就是一个动态类, 控制器名称出现url
  35. $cont = ucfirst('goods');
  36. // UserController.php
  37. // $controller = ucfirst( 'goods') . 'Controller';
  38. $obj = new $cont();
  39. var_dump($obj);

类的属性获取

  1. <?php
  2. // namespace _0812;
  3. /**
  4. * 类成员
  5. * 1. 实例成员: 用对象访问, $this
  6. * 2. 静态成员
  7. */
  8. class User1 {
  9. // 1.1 实例成员
  10. // 类里面声明变量,要给声明全局、范围的限定、 不然报错
  11. // 私有成员 、 private 只有当前类使用,其他地方不能使用
  12. // 默认公共的 public
  13. public $username ='小狗' ;
  14. // 私有的 只有当前类使用
  15. private $salary =15000;
  16. private $age =15;
  17. // 写个方法返回 私有的
  18. public function getSalary (){
  19. // $user = new User1();
  20. // return $user ->salary;
  21. // 简化 $this 和当前类实例绑定
  22. return $this ->salary;
  23. }
  24. // 写个方法返回 私有的
  25. public function getAge (){
  26. // $user = new User1();
  27. // return $user ->salary;
  28. // 简化 $this 和当前类实例绑定
  29. return $this ->age;
  30. }
  31. }
  32. // 实例化
  33. $user1 =new User1();
  34. echo $user1 ->username.'<hr>';
  35. // echo $user1 ->salary.'<hr>'; 访问不到私有变量
  36. // 访问到了
  37. echo $user1 ->getSalary();
  38. echo '<hr>';
  39. // 访问到了
  40. echo $user1 ->getAge();
  41. echo '<hr>';
  42. // 简化 获取器
  43. class User2 {
  44. // 1.1 实例成员
  45. // 类里面声明变量,要给声明全局、范围的限定、 不然报错
  46. // 私有成员 、 private 只有当前类使用,其他地方不能使用
  47. // 默认公共的 public
  48. public $username2 ='小猫' ;
  49. // 私有的 只有当前类使用
  50. private $salary2 =25000;
  51. private $age2 =25;
  52. public $role = '妈';
  53. // 获取器 忽略属性类型 全部返回
  54. // $name 要获取的属性名
  55. // 获取器: __get(属性), 魔术方法, 双下划线开始的系统方法
  56. // $name: 要获取的属性名
  57. public function __get($name)
  58. {
  59. // 类内部: $this
  60. // return $this ->$name;
  61. // 设置拦截
  62. if($name ==='salary2'){
  63. if ($this -> role==='太太'){
  64. return $this ->$name -1;}
  65. else {
  66. return $this ->$name -2;
  67. }
  68. }
  69. if($name ==='age2'){
  70. return $this ->$name +1;
  71. }
  72. }
  73. // 修改器/设置器, 魔术方法, __set(属性,值)
  74. // public function __set($name, $value)
  75. // {
  76. // if($name ==='age2'){
  77. // if ($value >= 18 && $value <= 50){
  78. // $this ->$name = $value;
  79. // }else {
  80. // echo '年龄非法';
  81. // }
  82. // }
  83. // }
  84. // 修改器/设置器, 魔术方法, __set(属性,值)
  85. public function __set($name, $value)
  86. {
  87. if ($name === 'age2') {
  88. if ($value >= 18 && $value <= 50) {
  89. $this->$name = $value;
  90. } else {
  91. echo '年龄越界了';
  92. }
  93. }
  94. }
  95. }
  96. // 实例化
  97. // 在类外部,用对象访问成员
  98. // $user2 =new User2();
  99. // echo $user2 ->username2.'<hr>';
  100. // // echo $user1 ->salary.'<hr>'; 访问不到私有变量
  101. // // 访问到了
  102. // echo $user2 ->salary2;
  103. // echo '<hr>';
  104. // // 访问到了
  105. // echo $user2 ->age2;
  106. // echo '<hr>';
  107. // 修改 年龄 类内部的值 _set()
  108. // $user2 ->age2 = 35;
  109. // echo $user2 ->age2;
  110. // echo '<hr>';
  111. // 修改 年龄 类内部的值 _set()
  112. // $user2 ->age2 = 15;
  113. // // echo $user2 ->age2;
  114. // echo '<hr>';
  115. // 修改 年龄 类内部的值 _set()
  116. // $user2 ->age2 = 40;
  117. // echo $user2 ->age2;
  118. // echo '<hr>';
  119. // 实例化
  120. // 在类外部,用对象访问成员
  121. $user2 = new User2();
  122. echo $user2->username , '<br>';
  123. // echo $user1->salary , '<br>';
  124. echo $user2->salary2 . '<br>';
  125. echo $user2->age2 . '<br>';
  126. $user2->age2 = 48;
  127. echo $user2->age2 . '<br>';
  128. $user2->age2 =60;
  129. // echo $user2->age2 . '<br>';

类属性获取 构造器获取

  1. <?php
  2. namespace _0812;
  3. /**
  4. * 类成员
  5. * 1. 实例成员: 用对象访问, $this->对象引用
  6. * 2. 静态成员 static: 用类访问, self::->类引用 私有属性
  7. */
  8. class User3
  9. {
  10. public $username;
  11. private $salary;
  12. private $age;
  13. // 当前类实例的状态(属性值)应该由用户来决定,而不是由类来写死
  14. // 构造方法: 魔术方法, 不用用户主动调用,由某个事件或动作来触发
  15. // __get,__set
  16. // 构造方法, 实例化该类时,会自动触发 new的时候 进阶学习设计模式*
  17. public function __construct($name,$salary,$age,$nation='ch')
  18. {
  19. $this -> username =$name;
  20. $this -> salary =$salary;
  21. $this -> age =$age;
  22. // 初始化静态属性
  23. self::$nation = $nation ;
  24. }
  25. // 静态属性
  26. public static $nation = '中国';
  27. // 静态方法
  28. public function hello(){
  29. return '你好,'. User3 ::$nation;
  30. // 在类中, 使用 self::来引用当前类
  31. // return 'Hello,' . self::$nation;
  32. }
  33. }
  34. $user3 =new User3('小猫',2000,2);
  35. echo $user3 ->username .'<hr>';
  36. echo $user3 :: $nation .'<hr>';
  37. // echo $user3 ->salary .'<hr>';
  38. // echo $user3 ->age .'<hr>';
  39. $user3 =new User3('小狗',3000,3);
  40. echo $user3 ->username .'<hr>';
  41. // echo $user3 ->salary .'<hr>';
  42. // echo $user3 ->age .'<hr>';
  43. // echo $user3->nation . '<br>';
  44. // 类外部,访问静态成员,使用 类名称::
  45. // echo $user3 ::$nation .'<hr>';
  46. // 类外部,访问静态方法
  47. echo User3::hello() . '<br>';
Correcting teacher:PHPzPHPz

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
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!