PHP面向对象教程的定制类
如何设计一个合格的班,开始写类{ }所有的对与错是什么都不写,但如果已经存在这类,这个对象已经存在,所有的属性和方法已经在这个完全的假设下,对象应该想象如何使用,例如我们的班一个缩略图,我们希望封装成一个类,用它下一次,我们首先需要定义的对象是什么,它会做什么,使操作的本质是从图像和缩略图的输出,这是图像的操作,然后对象是图片,因为网站图片是不是只有我们这是告诉图片,它可以假设类已经存在,一开始的说法是,图片,比如$ SIMG =新SIMG(1 .jpg);然后,那是一张图片的属性吗创建缩略图的时候,我们最应该关心的宽,高,和这三种类型的图片是正的,这意味着该对象必须有这些特性,$ SIMG ->宽度,$ SIMG ->高度,$ SIMG ->类型,这些性质都开始阅读,复制代码代码如下所示:
1美元=新SIMG SIMG(1 .jpg);
2 echo SIMG ->宽度;
3 echo SIMG ->高度;
4 echo SIMG ->型;
5 这个对象,这个操作应该是。
按照面向对象的原则,如果对象的属性发生变化,对象也应该发生相应的变化,这意味着我们可以将它分配给它,得到物体的宽度和高度,计算它(例如,减少比例)和重新回来。我们的本质是创建一个图片缩略图,这是创建一个新的图片。更改后,下一步要做的是保存更改后的图片。节约是一个过程,所以这将是一个方法。例如,$ SIMG ->保存(),考虑要换个地方保存。至少一名应该改变,即使用时,这个对象应该被描述,图片保存到…这意味着,该方法有一个参数,这就是它被保存。
复制代码代码如下所示:
$ SIMG =新SIMG(1 .jpg); / /实例化
$ SIMG ->宽度= 200; / /设置宽度
$ SIMG ->高度= 200; / /设置高度
$ SIMG ->保存(2 .jpg); / /保存到2.jpg
同样在这种思维在描述和写出来的代码应该在这里使用,思维的描述有一个小问题,可能会产生不符合思维误导OOP的原则,这不符合面向对象的是:为什么不重新分配原对象属性的变化大小,保存变化是说,事实上,对象是一个复制的源内存对象的PHP,我们改变了副本的大小和保存,使画面真实属性改变之前的图片应该是只读的,修改是无效的,所以如果你作为对象描述最初的话。描述应该更准确:图片后的尺寸变化和大小变化。原来的地图没有改变,改变大小是一个过程,这意味着它也是一种方法。
复制代码代码如下所示:
这个类应该是这样的。
/实例化图片
$ SIMG =新SIMG(1 .jpg);
读取图像的宽度和高度比
$simg->width
$ SIMG ->高度
指定图像宽度和高度…
$ SIMG ->大小(200200)->保存(2 .jpg);
这是一个基于原始图作为对象的描述。虽然它是一个不存在的类,但它的用法必须预先存在,并且与OOP的思想原理一致,即它是什么和它能做什么。如果我们从另一个角度来考虑它,那么我们将使用对象作为对象输出。当对象被创建时,它应该是空的。然后它必须以一定的图片作为基准,然后调整它的大小,然后保存它。
复制代码代码如下所示:
按照这个想法/描述,代码应该是这样的
$ SIMG =新(SIMG); / /启动空
echo SIMG ->宽度; / / 0
$ SIMG ->负荷(1 .jpg); / /图供参考
echo SIMG ->宽度; / /没有变化,是原来的大小
更改大小
SImg ->宽度= 200美元;
SImg ->高度= 200美元;
$ SIMG ->保存(2 .jpg); / /保存
在这一点上似乎并不那么明显。
以下会更好:
复制代码代码如下所示:
$ SIMG =新SIMG(2 .jpg); / /启动空,指定一个文件名
$ SIMG ->负荷(1 .jpg); / /图供参考
更改大小
SImg ->宽度= 200美元;
SImg ->高度= 200美元;
($ SIMG ->保存); / /保存
这将更为明显,实例化一个缩略图,但在保存到硬盘之前,它是不存在的。
这里我们首先以原始图作为对象创建这个类,根据上面的分析如下:
复制代码代码如下所示:
< PHP
类SIMG {
公共$宽度= 0;
公共高度= 0;
公共功能__construct($ IMG){
}
公共功能大小(宽度,高度){
}
公共函数保存($ PATH){
}
}
之后,我们根据每个方法的要求对每个方法填写代码。我们必须从一开始就知道文件的高度和宽度。因为PHP有不同的函数来处理不同类型的图片,所以我们必须知道文件的数量。在决定使用哪一个函数时,是考虑如何做的时候,当它被实例化时,它马上知道它有多高。只有在实例化类时才执行构造函数。在这里,我们可以使用getimagesize函数得到的宽度、高度、类型、文件的宽度和高度,在那里我们可以赋值给属性。所以,实例化的图片,获取财产的问题就解决了。改变尺寸的过程怎么样
复制代码代码如下所示:
< PHP
类SIMG {
公共$宽度= 0;
公共高度= 0;
公共功能__construct($ IMG){
$ var = getimagesize($ IMG);
$ >宽度= $ 0 { };
$ = >高度= $ 1 { };
}
公共功能大小(宽度,高度){
}
公共函数保存($ PATH){
}
}
因为有三种类型的GIF JPG PNG在网络上,其他类型的暂时不考虑和调整。没有之前的输出。可以说,我们的代码,我们只要知道图片输出有多大,但不同的方法,内部变量是不常见的。怎么办注册全局变量是易受干扰和污染的外部变量,因此我们使用类的属性保存。新两性质暂定为W和H,这两个属性,严格地说不是一个属性,我们只是用财产转移变量之间的方法,为了在教室外面避免他们的访问和修改时间的定义在我们的私人使用关键字来访问限制,私人$ w = 0;私人$ H = 0;
复制代码代码如下所示:
公共功能大小(宽度,高度){
$此宽度;
此$ = H = $高度;
}
改变大小的方法,只要高度和宽度的临时输出可以被记录。以下是保存,保存的图片之前,必须先得到之前,所以缩略图的计算过程,主要是在这里,为了减少需要加载的图像,但也需要知道文件类型,因为不同类型的图像的加载是不一样的,文件名和文件类型。它不在构造函数添加在这个时候两个公共属性的认识。
复制代码代码如下所示:
公共$宽度= 0;
公共高度= 0;
公共$路径=;
公共$类型= 0;
私人$ w = 0;
私人$ H = 0;
公共功能__construct($ IMG){
$ var = getimagesize($ IMG);
$ >宽度= $ 0 { };
$ = >高度= $ 1 { };
美元->路径= $ IMG;
$ $ > type = $ 2 { };
}
之后,我们可以保存方法,加载原始的,改变大小,保存到指定的位置,判断不同类型的调用的功能保存方法,当不同的选择使用开关($ { 2 })时,判断和存储在一个新的缩略图中。
复制代码代码如下所示:
根据这种写作模式,这应该是一种使用方式。
$ SIMG =新SIMG(1 .jpg);
计算了读取宽度和高度。
$ SIMG ->宽度
设置大小
$ SIMG ->大小(200, 200);
保存到
$ SIMG ->保存(2 .jpg);
和描述的是一个有点不同,因为描述是:(一)使用面积、保存(在这里)这个描述有点复杂,所以如果你能写没问题$ SIMG ->大小(200, 200)->保存(2 .jpg);使用对象必须是一个对象->方法(它)的价值量的要求必须保存对象,前面是大小的返回值需要的尺寸必须是一个对象,但这不是什么事情都需要回报的,但对象都是对象,将不会有任何的保存方法,我们没有增加一个紧,
复制代码代码如下所示:
公共功能大小(宽度,高度){
$此宽度;
此$ = H = $高度;
返回$此;
}
返回当前对象,所以你可以使用图片的大小并保存为($ SIMG ->大小)(200, 200)->保存(2 .jpg)。这样的OOP类包已经完成。