没腿的鸟 发表于 2024-6-13 22:13:21

php基础语法_面向对象

PHP

php代码标记

多种标记来区分php脚本
ASP标记:
短标记:
脚本标记:
尺度标记(常用):
简写风格:
ASP风格:
注意:简写风格和ASP风格需要在php.ini设置文件中修改以下设置为on,移植性差
short_open_tag = on
asp_tags = on<html>

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

行注释

//注释
注释

块注释

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

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

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

直接将true or false赋值给变量即可
整型

PHP_INT_MAX64位下最大值大约为9E18,当整数溢出时,会转换成科学计数法格式界说的浮点数。
浮点型

<?php
$a = 1.234
$b = 1.2e3;                        //科学计数法
$c = 7e-10;                        //科学计数法,负指数类的命名规范:
命名规范与函数雷同,不能用数字开头
多单词用驼峰法:MyClass
3.类成员

目标:相识类成员的类型,作用,能够运用类成员去创建有效类
类成员:
https://img2024.cnblogs.com/blog/3409507/202406/3409507-20240613224602206-1852425270.png
成员访问:属性和方法都属于对象访问,类常量属于类访问
类访问:
class 类名{

}步骤

[*]声明类结构
[*]明确类产生的对象是否需要有数据的存储:确定属性
[*]明确类产生的对象是否需要函数实现功能:确定方法
[*]明确类是否需要界说常量
[*]对象实例化
[*]类成员访问(属性和方法)
<?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();
?>
https://img2024.cnblogs.com/blog/3409507/202406/3409507-20240613224724804-1899717823.png
https://img2024.cnblogs.com/blog/3409507/202406/3409507-20240613224731506-674232135.png
4.访问修饰限定符

修饰限定符:用在属性或者方法前的修饰关键字,用来控制属性或者方法的访问位置

[*]访问修饰限定符分类
​<html>

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

<body>
        <b>
                <?php
                        //脚本标记
                        echo 'hello world';
                ?>
        </b>
</body>
</html>public:公有,类内类外都可以访问
​<html>

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

<body>
        <b>
                <?php
                        //脚本标记
                        echo 'hello world';
                ?>
        </b>
</body>
</html>protected:受掩护,只允许在相干类内部访问
​<html>

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

<body>
        <b>
                <?php
                        //脚本标记
                        echo 'hello world';
                ?>
        </b>
</body>
</html>private:私有,只能在类内访问,为方法准备的

[*]属性必须有访问修饰限定符,方法可以没有,默认public
步骤

[*]声明类结构
[*]确定类成员
[*]确定类成员的访问位置限定,使用对应访问修饰限定符
[*]只能在对应位置访问被修饰的成员
<?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.公有成员访问
5.类内部对象

内部对象:$this,方法内部内置 的一个对象
https://img2024.cnblogs.com/blog/3409507/202406/3409507-20240613224751964-135943317.png
https://img2024.cnblogs.com/blog/3409507/202406/3409507-20240613224757112-95500756.png
2.类内部访问类成员,需要通过对象举行访问
3,使用内置对象$this访问
$this代表的是对象,$this所在的情况为类内部的方法内部,所以$this对象是在类内部访问,因此可以访问所有的属性和方法,不受访问修饰限定符限制
https://img2024.cnblogs.com/blog/3409507/202406/3409507-20240613224808716-2135323396.png
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 类名(实参通报给形参)
https://img2024.cnblogs.com/blog/3409507/202406/3409507-20240613224821814-620041059.png
<?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();
?>
[*]
构造方法实现:

[*]
一旦构造方法拥有了形参,那么对象在调用该方法的时间就应该传入对应的实参,而构造方法又是主动调用的,所以需要在实例化对象的时间使用new类名(构造方法对应的实参列表)来实现
__construct()允许手动调用:
小结
https://img2024.cnblogs.com/blog/3409507/202406/3409507-20240613224832022-1510206678.png
8.析构方法

https://img2024.cnblogs.com/blog/3409507/202406/3409507-20240613224838870-99344815.png
https://img2024.cnblogs.com/blog/3409507/202406/3409507-20240613224844657-1034292728.png
主动调用析构方法
示例当主动调用析构方法,其实他就是只是一个平凡的方法,不会烧毁对象
析构方法是当对象烧毁的时间调用
9.对象传值

https://img2024.cnblogs.com/blog/3409507/202406/3409507-20240613224853487-1148996885.png
https://img2024.cnblogs.com/blog/3409507/202406/3409507-20240613224859111-192017760.png
https://img2024.cnblogs.com/blog/3409507/202406/3409507-20240613224905411-76380566.png
小结:
对象传值方式是引用传值,不论对象如何被赋值给其他对象,始终只有一个内存地址。
10.范围剖析操作符(类常量访问)

https://img2024.cnblogs.com/blog/3409507/202406/3409507-20240613224912796-1596399754.png
https://img2024.cnblogs.com/blog/3409507/202406/3409507-20240613224919286-92645880.png
https://img2024.cnblogs.com/blog/3409507/202406/3409507-20240613224927829-1570999200.png
不外我们一样寻常不建议使用echo $s1::PI;。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: php基础语法_面向对象