PHP 개체용 자습서의 사용자 정의 클래스
1 $simg = new simg("1.jpg");
2 echo $simg->width;
3 echo $simg->height;
4 echo $simg->type;
5 // , 。
oop의 사상의 원칙에 따르면 만약에 대상의 속성이 바뀌면 대상도 상응하는 변화가 발생할 것이다. 이것은 우리가 그것에 값을 부여하고 대상의 넓이, 높이를 얻으며 계산한 후(예를 들어 비례에 따라 축소) 다시 값을 부여할 수 있다는 것을 의미한다.우리의 본질은 한 장의 그림의 줄임말을 만드는 것이다. 즉, 새로운 그림을 만들고 그것을 바꾼 후에 다음에 해야 할 일은 이 바뀐 그림을 저장하는 것이다. 저장하는 것은 하나의 과정이기 때문에 이것은 하나의 방법이 될 것이다.예를 들어 $simg->save () 는 다른 곳에 저장해야 한다는 것을 고려합니다.적어도 하나의 이름을 바꿔야 한다. 즉, 사용할 때 이 대상은 이렇게 묘사해야 한다. 그림은...에 저장된다. 이것은 이 방법에 매개 변수가 있다는 것을 의미한다. 바로 어디에 저장하는가이다.
$simg = new simg("1.jpg");//
$simg->width = 200;//
$simg->height = 200;//
$simg->save("2.jpg");// 2.jpg
이런 유형을 사용할 때 사고 묘사와 작성된 코드가 완전히 일치해야 한다. 이곳의 사고 묘사에 작은 문제가 생겨서 oop 사고 원칙에 부합되지 않는 오도가 발생할 수 있다. 여기서 대상을 대상으로 하는 것은 대상 속성의 재할당 원도의 크기가 왜 변화가 없고 변화된 것은 따로 저장된 것이다. 즉, 이 대상은 사실 php 메모리에서 원본 대상의 복제품이다.우리는 복제품의 크기를 바꾸고 저장했기 때문에 그림이 진정으로 바뀌기 전의 그림의 속성은 읽기만 하고 고치는 것은 무효이기 때문에 원도를 대상으로 묘사한다면.이렇게 설명하면 더욱 정확해야 한다. 그림의 크기를 바꾼 후에 다른 이름으로 저장해야 한다.원도의 크기는 변하지 않았고 크기를 바꾸는 것은 하나의 과정이다. 이것은 이것도 하나의 방법이라는 것을 의미한다.
// , 。
//
$simg = new simg("1.jpg");
//
$simg->width
$simg->height
// ……
$simg->size(200,200)->save("2.jpg");
이것은 원도를 대상으로 하는 각도에서 묘사한 것이다. 비록 존재하지 않는 유형이지만 그 용법은 반드시 사전에 존재하고 oop의 사상 원칙, 즉 이것이 무엇인지, 무엇을 할 수 있는지에 부합해야 한다.만약 다른 측면에서 생각하면 출력될 그림을 대상으로 한다면, 이 대상을 만들 때 비어 있어야 한다. 그리고 원도를 기준으로 크기를 조정해서 저장해야 한다.
// 。
$simg = new simg(); //
echo $simg->width; // 0
$simg->load("1.jpg"); //
echo $simg->width; // ,
//
$simg->width = 200;
$simg->height = 200;
$simg->save("2.jpg"); //
지금 티가 잘 안 나요.
다음과 같은 이점이 있습니다.
$simg = new simg("2.jpg"); // ,
$simg->load("1.jpg"); //
//
$simg->width = 200;
$simg->height = 200;
$simg->save(); //
이렇게 하면 더욱 뚜렷하게 축소판을 실례화할 수 있지만, 그것은 존재하지 않고, 저장된 후에야 하드디스크에 존재한다.
이 클래스는 먼저 첫 번째 방법으로 원도를 대상으로 하는 각도에서 만들어집니다. 위의 분석에 따르면 다음과 같습니다.
class simg {
public $width = 0;
public $height = 0;
public function __construct($img) {
}
public function size($width, $height) {
}
public function save($path) {
}
}
그 다음에 각 방법의 각 속성에 대한 요구에 따라 안에 있는 코드를 기입하면 처음부터 파일의 높이, 너비를 알아야 한다. php가 서로 다른 유형의 그림을 처리할 때 사용하는 함수가 다르기 때문에 우리는 여기서 파일 형식이 얼마나 되는지 알 수 밖에 없다.어떤 함수로 유형을 설계할지 결정할 때야말로'어떻게 할까'를 생각할 때이며, 실례화한 후에 바로 넓이를 알아야 한다.반드시 구조 함수에서 완성된 것이다. 구조 함수만 클래스가 실례화될 때 실행된다. 여기서 우리는 getimagesize 함수를 사용하여 파일의 너비, 높이, 유형, 너비와 높이를 얻을 수 있다. 우리는 여기서 속성에 값을 부여할 수 있다.이렇게 되면 그림을 실례화하면 속성을 얻는 문제가 해결된다. 그러면 크기를 바꾸는 과정은?
class simg {
public $width = 0;
public $height = 0;
public function __construct($img) {
$var = getimagesize($img);
$this->width = $var[0];
$this->height = $var[1];
}
public function size($width, $height) {
}
public function save($path) {
}
}
인터넷에서 자주 사용하는 그림 유형은gifjpgpng 세 가지가 있기 때문에 다른 유형은 잠시 고려하지 않고 크기를 조절하는 방법입니다.출력하기 전에 아무것도 안 해요.우리 코드는 출력할 그림이 얼마나 큰지 알면 된다고 할 수 있지만 방법에 따라 내부 변수가 통용되지 않는다.어떻게 전역 변수를 등록하면 외부 변수에 의해 방해되고 오염되기 쉬우므로 우리는 클래스의 속성을 이용하여 보존할 것이다.새로 추가된 두 가지 속성은 여기에서 w와 h로 잠정적으로 정한다. 이 두 속성은 엄밀히 말하면 속성이 아니다. 단지 우리가 속성을 이용하여 방법 사이에서 변수를 전달할 뿐이다. 클래스의 외부에 접근되고 우리가 정의할 때 키워드를 사용하여 접근 제한을 하지 않기 위해private $w = 0;private $h = 0;
public function size($width, $height) {
$this->w = $width;
$this->h = $height;
}
크기를 바꾸는 방법은 출력할 너비와 높이를 잠시 기록하면 된다.다음은 저장된 것입니다. 저장하기 전에 그림을 줄여야 하기 때문에 미리 보기 그림의 계산 과정은 주로 여기서 완성됩니다. 원본을 불러와야 축소할 수 있고 파일 형식도 알아야 합니다. 왜냐하면 서로 다른 유형의 그림이 불러오는 방식이 다르기 때문입니다. 파일 이름과 파일 형식이 다르기 때문입니다.구조 함수에서 알 수 있듯이 이때 우리는 두 개의 공공 속성을 추가한다.
public $width = 0;
public $height = 0;
public $path = '';
public $type = 0;
private $w = 0;
private $h = 0;
public function __construct($img) {
$var = getimagesize($img);
$this->width = $var[0];
$this->height = $var[1];
$this->path = $img;
$this->type = $var[2];
}
이후에 우리는 저장하는 방법에서 원도를 불러오고 크기를 바꾸어 지정한 위치에 저장할 수 있으며, 저장 방법의 종류에 따라 호출된 함수를 쓸 때 switch ($var[2]) 를 사용하여 새 축소도를 만들고 저장할 수 있습니다.
// 。。
$simg = new simg("1.jpg");
//
$simg->width
//
$simg->size(200, 200);
//
$simg->save("2.jpg");
묘사와는 조금 다르다. 묘사는 (이것) 크기를 사용하고 다른 이름으로 저장하는 것이 까다롭기 때문이다. 이렇게 쓸 수 있다면 문제없다. $simg->size(200,200)->save('2.jpg').대상의 사용은 반드시 이런 대상이어야 한다. -> 방법()은 앞의 양에 있는 값이 하나의 대상이어야 한다. save 앞에는 size가 있기 때문에 size의 반환 값은 하나의 대상이어야 한다. 그러나 이 방법은 되돌아갈 것이 없다. 그리고 이 대상은 틀림없이 현재의 대상이어야 save 방법이 있다. 대상이 없으면 우리가 하나를 추가하지 마라.
public function size($width, $height) {
$this->w = $width;
$this->h = $height;
return $this;
}
현재 대상을 되돌려줍니다. 그러면 그림으로 (이) 크기를 사용하고 (여기) $simg->size (200, 200) ->save ("2.jpg") 로 저장할 수 있습니다.이렇게 oop사상에 부합되는 유형의 포장이 완성되었다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.