博客列表 >文件包含介绍及类成员

文件包含介绍及类成员

OC的PHP大牛之路
OC的PHP大牛之路原创
2022年08月15日 16:58:49476浏览

文件包含

将外部文件的内容插入当前位置;

includerequire

  1. // 1.include
  2. // 代码出错后忽略错误,继续执行后面代码;
  3. 相对路径:include 'inc/f1.php';
  4. 绝对路径:include __DIR__ . '/inc/f1.php';
  5. echo $username ;
  6. // 2.require
  7. // 代码出错后直接退出;
  8. require __DIR__ . '/inc/f1.php';
  9. echo $username ;

类与对象

类:全局成员,声明(class),用大驼峰(UserName)
对象:一个容器,是全局成员一个前缀

  1. 1.类声明
  2. class Goods{...};
  3. 2.类的实例化(对象)
  4. $goods = new Goods();

类成员

1.实例成员:用对象访问($this)

  1. class User1
  2. {
  3. // 1. 实例成员
  4. // (一) 属性, 变量的语法
  5. // public: 公共(默认)
  6. public $username = '张老师';
  7. public $role = '妈';
  8. // 私有, 只能在当前的类中使用
  9. private $salary = 3800;
  10. private $age = 28;
  11. // (二) 方法: 函数的语法
  12. // public function getSalary()
  13. // {
  14. // $this : 和当前类实例绑定
  15. // return $this->salary;
  16. // }
  17. // public function getAge()
  18. // {
  19. // return $this->age;
  20. // }
  21. // 获取器: __get(属性), 魔术方法, 双下划线开始的系统方法
  22. // $name: 要获取的属性名
  23. public function __get($name)
  24. {
  25. // 类内部: $this
  26. // return $this->$name;
  27. if ($name === 'salary') {
  28. if ($this->role === '太太') {
  29. return $this->$name;
  30. } else {
  31. return $this->$name - 1000;
  32. }
  33. }
  34. if ($name === 'age') {
  35. return $this->$name + 10;
  36. }
  37. }
  38. // 修改器/设置器, 魔术方法, __set(属性,值)
  39. public function __set($name, $value)
  40. {
  41. if ($name === 'age') {
  42. if ($value >= 18 && $value <= 50) {
  43. $this->$name = $value;
  44. } else {
  45. echo '年龄越界了';
  46. }
  47. }
  48. }
  49. // __get, __set, 成员非法访问拦截器
  50. }
  51. // 实例化
  52. // 在类外部,用对象访问成员
  53. $user1 = new User1();
  54. echo $user1->username , '<br>';
  55. // echo $user1->salary , '<br>';
  56. echo $user1->salary . '<br>';
  57. echo $user1->age . '<br>';
  58. $user1->age = 48;
  59. echo $user1->age . '<br>';

2.静态成员 static:用类访问(self::)

  1. class User2
  2. {
  3. public $username;
  4. private $salary;
  5. private $age;
  6. // 当前类实例的状态(属性值)由用户决定
  7. // 构造方法: 魔术方法, 不用用户主动调用,由某个事件或动作来触发
  8. // __get,__set
  9. // 构造方法, 实例化该类时,会自动触发
  10. public function __construct($username, $salary, $age,
  11. $nation = 'CHINA')
  12. {
  13. $this->username = $username;
  14. $this->salary = $salary;
  15. $this->age = $age;
  16. // 初始化静态属性
  17. self::$nation = $nation ;
  18. }
  19. // 静态成员 static
  20. // 静态属性
  21. public static $nation;
  22. // 静态方法
  23. public static function hello()
  24. {
  25. // return 'Hello,' . User2::$nation;
  26. // 在类中, 使用 self::来引用当前类
  27. return 'Hello,' . self::$nation;
  28. }
  29. }
  30. $user2 = new User2('李老师', 2800, 30, '中国');
  31. echo $user2->username . '<br>';
  32. echo User2::$nation . '<br>';
  33. $user3 = new User2('猪老师', 3800, 40, '中国');
  34. echo $user3->username . '<br>';
  35. // echo $user3->nation . '<br>';
  36. // 类外部,访问静态成员,使用类名称::
  37. echo User2::$nation . '<br>';
  38. echo User2::hello() . '<br>';
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议