翼度科技»论坛 编程开发 PHP 查看内容

php基础语法_面向对象

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
PHP

php代码标记

多种标记来区分php脚本
ASP标记:
短标记:
脚本标记:
标准标记(常用):
简写风格:
ASP风格:
注意:简写风格和ASP风格需要在php.ini配置文件中修改以下配置为on,移植性差
  1. short_open_tag = on
  2. asp_tags = on
复制代码
  1. <html>
  2. <body>
  3.         <b>
  4.                 <?php
  5.                         //脚本标记
  6.                         echo 'hello world';
  7.                 ?>
  8.         </b>
  9. </body>
  10. </html>
复制代码
php注释

行注释

//注释
注释

块注释

/*
注释
*/
php指令分隔符

;类似C语言,使用分号来结束指令
php数据类型

类型说明boolean布尔型True and falsestring字符串型字符序列integer整型正负整数float浮点型整,小数array数组一组有序数据集合object对象对象是类的实例,使用new命令创建resource资源NULL$ 是php变量的标识符,所有变量都以$字符开头,无论是申明还是调用
布尔型boolean

直接将true or false赋值给变量即可
  1. [/code][size=4]整型[/size]
  2. [code]
复制代码
PHP_INT_MAX  64位下最大值大约为9E18,当整数溢出时,会转换成科学计数法格式定义的浮点数。
浮点型
  1. <?php
  2. $a = 1.234
  3. $b = 1.2e3;                        //科学计数法
  4. $c = 7e-10;                        //科学计数法,负指数
复制代码
类的命名规范
命名规范与函数类似,不能用数字开头
多单词用驼峰法:MyClass
3.类成员

目标:了解类成员的类型,作用,能够运用类成员去创建有效类
类成员

成员访问:属性和方法都属于对象访问,类常量属于类访问
类访问:
  1. class 类名{
  2. }
复制代码
步骤

  • 声明类结构
  • 明确类产生的对象是否需要有数据的存储:确定属性
  • 明确类产生的对象是否需要函数实现功能:确定方法
  • 明确类是否需要定义常量
  • 对象实例化
  • 类成员访问(属性和方法)
<?php
class Buyer{
public $name;
public $money = 0;
function display(){
    echo __CLASS__;
}
}
const BIG_NAME = 'BUYER';
$b = new Buyer();
$b->money = 10;
$b->eyes = 1;
unset($b->name);
var_dump($b);
$b->display();
?>
  1. [/code][align=center][/align]
  2. [align=center][/align]
  3. [size=5]4.访问修饰限定符[/size]
  4. [b]修饰限定符[/b]:用在属性或者方法前的修饰关键字,用来控制属性或者方法的访问位置
  5. [list]
  6. [*]访问修饰限定符分类
  7. [/list]​<html>
  8. <body>
  9.         <b>
  10.                 <?php
  11.                         //脚本标记
  12.                         echo 'hello world';
  13.                 ?>
  14.         </b>
  15. </body>
  16. </html><html>
  17. <body>
  18.         <b>
  19.                 <?php
  20.                         //脚本标记
  21.                         echo 'hello world';
  22.                 ?>
  23.         </b>
  24. </body>
  25. </html>public:公有,类内类外都可以访问
  26. ​<html>
  27. <body>
  28.         <b>
  29.                 <?php
  30.                         //脚本标记
  31.                         echo 'hello world';
  32.                 ?>
  33.         </b>
  34. </body>
  35. </html><html>
  36. <body>
  37.         <b>
  38.                 <?php
  39.                         //脚本标记
  40.                         echo 'hello world';
  41.                 ?>
  42.         </b>
  43. </body>
  44. </html>protected:受保护,只允许在相关类内部访问
  45. ​<html>
  46. <body>
  47.         <b>
  48.                 <?php
  49.                         //脚本标记
  50.                         echo 'hello world';
  51.                 ?>
  52.         </b>
  53. </body>
  54. </html><html>
  55. <body>
  56.         <b>
  57.                 <?php
  58.                         //脚本标记
  59.                         echo 'hello world';
  60.                 ?>
  61.         </b>
  62. </body>
  63. </html>private:私有,只能在类内访问,为方法准备的
  64. [list]
  65. [*]属性必须有访问修饰限定符,方法可以没有,默认public
  66. [/list][indent]步骤
  67. [/indent][list=1]
  68. [*]声明类结构
  69. [*]确定类成员
  70. [*]确定类成员的访问位置限定,使用对应访问修饰限定符
  71. [*]只能在对应位置访问被修饰的成员
  72. [/list][indent]<?php
  73. class Buyer{
  74. public $name;
  75. public $money = 0;
  76. function display(){
  77.     echo __CLASS__;
  78. }
  79. }
  80. const BIG_NAME = 'BUYER';
  81. $b = new Buyer();
  82. $b->money = 10;
  83. $b->eyes = 1;
  84. unset($b->name);
  85. var_dump($b);
  86. $b->display();
  87. ?>
  88. [/indent]1.公有成员访问
  89. [code]
复制代码
5.类内部对象

内部对象:$this,方法内部内置 的一个对象


2.类内部访问类成员,需要通过对象进行访问
  1. [/code]3,使用内置对象$this访问
  2. [code]
复制代码
$this代表的是对象,$this所在的环境为类内部的方法内部,所以$this对象是在类内部访问,因此可以访问所有的属性和方法,不受访问修饰限定符限制

6.面向对象的开发规范


  • 尽可能的增加类对成员的控制 ,尽多的使用private,少用public
  • 属性通常是私有化的,一般是通过设定方法来实现属性的访问和修改
7.构造方法

了解魔术方法的概念,明确触发模式,因为构造方法是魔术方法
构造方法:__construct(),是一种类结构特有的特殊方法,由系统规定好,有了构造方法的类在实例化对象之后,对象就会自动调用

  • 构造方法是一种魔术方法:魔术方法会被自动触发,不需要手动调用
  • 构造方法的目标市实现对象的初始化
​<html>

<body>
        <b>
                <?php
                        //脚本标记
                        echo 'hello world';
                ?>
        </b>
</body>
</html><html>

<body>
        <b>
                <?php
                        //脚本标记
                        echo 'hello world';
                ?>
        </b>
</body>
</html>对象实例化会自动调用
​<html>

<body>
        <b>
                <?php
                        //脚本标记
                        echo 'hello world';
                ?>
        </b>
</body>
</html><html>

<body>
        <b>
                <?php
                        //脚本标记
                        echo 'hello world';
                ?>
        </b>
</body>
</html>构造方法通常是为了实现对象所需资源的初始化

  • 构造方法本质还是一种方法
​<html>

<body>
        <b>
                <?php
                        //脚本标记
                        echo 'hello world';
                ?>
        </b>
</body>
</html><html>

<body>
        <b>
                <?php
                        //脚本标记
                        echo 'hello world';
                ?>
        </b>
</body>
</html>受访问修饰限定符控制
​<html>

<body>
        <b>
                <?php
                        //脚本标记
                        echo 'hello world';
                ?>
        </b>
</body>
</html><html>

<body>
        <b>
                <?php
                        //脚本标记
                        echo 'hello world';
                ?>
        </b>
</body>
</html>对象可以选择调用(一般不会)

  • 可以设定形参,对应的实参市在实例化对象的时候传入:new 类名(实参传递给形参)

  1. <?php
  2. class Buyer{
  3. public $name;
  4. public $money = 0;
  5. function display(){
  6.     echo __CLASS__;
  7. }
  8. }
  9. const BIG_NAME = 'BUYER';
  10. $b = new Buyer();
  11. $b->money = 10;
  12. $b->eyes = 1;
  13. unset($b->name);
  14. var_dump($b);
  15. $b->display();
  16. ?>
复制代码


构造方法实现:
  1. [/code][list=1]
  2. [*]
  3. [/list]一旦构造方法拥有了形参,那么对象在调用该方法的时候就应该传入对应的实参,而构造方法又是自动调用的,所以需要在实例化对象的时候使用new类名(构造方法对应的实参列表)来实现
  4. [code]
复制代码
__construct()允许手动调用:
  1. [/code][b]小结[/b]
  2. [align=center][/align]
  3. [size=5]8.析构方法[/size]
  4. [align=center][/align]
  5. [align=center][/align]
  6. [b]主动调用析构方法[/b]
  7. [code]示例
复制代码
当主动调用析构方法,其实他就是只是一个普通的方法,不会销毁对象
析构方法是当对象销毁的时候调用
9.对象传值




小结:
对象传值方式是引用传值,不论对象如何被赋值给其他对象,始终只有一个内存地址。
10.范围解析操作符(类常量访问)




[code][/code]不过我们一般不建议使用echo $s1::PI;。

来源:https://www.cnblogs.com/Sol9/p/18246922
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具