728x90

PHP에서 제너레이터는 대용량의 데이터 집합을 반복할 때 메모리에 전체 데이터를 한 번에 로드하지 않고 간단하고 효율적으로 반복자를 작성할 수 있도록 해줍니다. PHP의 제너레이터는 `yield` 키워드를 사용하여 함수의 실행을 일시 중지하고 호출 코드에 값을 반환하는 방식으로 작동합니다. 제너레이터가 재개되면 일시 중지된 지점에서 실행을 이어갑니다.

아래는 PHP의 제너레이터 함수의 간단한 예입니다:

function generatorExample() {

for ($i = 0; $i < 5; $i++) {

yield $i;

}

}

이 제너레이터를 사용하려면 일반 함수처럼 호출할 수 있지만, 값을 반환하는 대신 제너레이터 객체를 반환합니다:

$generator = generatorExample();

이제 제너레이터 객체를 사용하여 제너레이터가 생성하는 값을 반복할 수 있습니다:

foreach ($generator as $value) {

echo $value

그러면 다음이 출력됩니다.

0

1

2

3

4

제너레이터는 큰 파일을 읽는 것과 같이 큰 데이터 세트로 작업할 때 특히 유용합니다. 다음은 CSV 파일을 읽고 한 번에 한 행씩 생성하는 제너레이터의 예입니다.

function csvGenerator($filePath) {

if (($handle = fopen($filePath, "r")) !== false) {

while (($row = fgetcsv($handle)) !== false) {

yield $row;

}

fclose($handle);

}

}

$generator = csvGenerator("data.csv");

foreach ($generator as $row) {

print_r($row);

}

이 예에서 제너레이터는 CSV 파일을 한 번에 한 행씩 읽고 각 행을 배열로 생성합니다. 이를 통해 전체 파일을 메모리에 로드하지 않고도 대용량 CSV 파일을 처리할 수 있습니다.

728x90

'IT' 카테고리의 다른 글

PHP의 Generators  (0) 2023.03.01
PHP의 Generators  (0) 2023.03.01
PHP의 Fiber  (0) 2023.03.01
PHP의 Fiber  (0) 2023.03.01
PHP의 Superglobals  (0) 2023.03.01
728x90

PHP에서의 Fiber는 사용자 수준의 경량 스레드입니다. 운영 체제에 의해 관리되는 전통적인 스레드와는 달리, Fiber는 PHP 스크립트 자체에 의해 제어되기 때문에 사용이 쉽고 리소스 소비가 적습니다.

다음은 PHP에서 Fiber를 사용하는 방법의 예입니다:

$fiber = Fiber::run(function() {

echo "Fiber 1 running\n";

Fiber::yield();

echo "Fiber 1 resumed\n";

});

echo "Back in main\n";

$fiber->resume();

echo "Fiber 1 has finished\n";

이 예제에서, Fiber::run 메소드는 익명 함수를 인수로 받은 새로운 Fiber를 생성합니다. Fiber::yield 호출은 Fiber를 중지하여, 메인 스크립트가 계속 실행될 수 있도록합니다. $fiber->resume 메소드는 Fiber를 재개하여, 중지된 곳에서 계속 실행될 수 있도록 합니다.

Fiber는 PHP에서 협력적인 멀티태스킹을 구현하는 편리한 방법입니다. 여기서 여러 작업이 단일 프로세스에서 실행되고 전체 프로세스가 차단되지 않도록 교대로 실행됩니다.

728x90

'IT' 카테고리의 다른 글

PHP의 Generators  (0) 2023.03.01
PHP의 Generators  (0) 2023.03.01
PHP의 Fiber  (0) 2023.03.01
PHP의 Superglobals  (0) 2023.03.01
PHP의 Superglobals  (0) 2023.03.01
728x90

PHP에서의 Fiber는 사용자 수준의 경량 스레드입니다. 운영 체제에 의해 관리되는 전통적인 스레드와는 달리, Fiber는 PHP 스크립트 자체에 의해 제어되기 때문에 사용이 쉽고 리소스 소비가 적습니다.

다음은 PHP에서 Fiber를 사용하는 방법의 예입니다:

$fiber = Fiber::run(function() {

echo "Fiber 1 running\n";

Fiber::yield();

echo "Fiber 1 resumed\n";

});

echo "Back in main\n";

$fiber->resume();

echo "Fiber 1 has finished\n";

이 예제에서, Fiber::run 메소드는 익명 함수를 인수로 받은 새로운 Fiber를 생성합니다. Fiber::yield 호출은 Fiber를 중지하여, 메인 스크립트가 계속 실행될 수 있도록합니다. $fiber->resume 메소드는 Fiber를 재개하여, 중지된 곳에서 계속 실행될 수 있도록 합니다.

Fiber는 PHP에서 협력적인 멀티태스킹을 구현하는 편리한 방법입니다. 여기서 여러 작업이 단일 프로세스에서 실행되고 전체 프로세스가 차단되지 않도록 교대로 실행됩니다.

728x90

'IT' 카테고리의 다른 글

PHP의 Generators  (0) 2023.03.01
PHP의 Fiber  (0) 2023.03.01
PHP의 Superglobals  (0) 2023.03.01
PHP의 Superglobals  (0) 2023.03.01
PHP의 Iterator  (0) 2023.03.01
728x90

PHP에는 모든 범위에서 항상 액세스할 수 있는 내장 변수인 여러 개의 완전 전역 변수가 있습니다.

  1. `$_GET`: URL 매개변수를 통해 현재 스크립트에 전달되는 변수의 배열입니다. 예를 들어:

www.example.com?name=John&age=30

스크립트에서 다음과 같이 이러한 값에 액세스할 수 있습니다.

$name = $_GET['name'];

$age = $_GET['age'];

2. `$_POST`: HTTP POST 요청을 통해 현재 스크립트에 전달되는 변수의 배열입니다. 예를 들어:

<form method="post">

<input type="text" name="username">

<input type="password" name="password">

<input type="submit" value="Submit">

</form>

양식을 처리하는 스크립트에서 다음과 같이 이러한 값에 액세스할 수 있습니다.

$username = $_POST['username'];

$password = $_POST['password'];

3. `$_COOKIE`: 클라이언트 컴퓨터에 쿠키로 저장된 변수의 배열입니다. 예를 들어:

setcookie('username', 'John', time() + (86400 * 30));

스크립트에서 다음과 같이 이 값에 액세스할 수 있습니다.

$username = $_COOKIE['username'];

4. `$_SESSION`: 서버에 저장되고 웹사이트의 모든 페이지에서 사용할 수 있는 세션 변수의 배열입니다. 예를 들어:

session_start();

$_SESSION['username'] = 'John';

스크립트에서 다음과 같이 이 값에 액세스할 수 있습니다.

$username = $_SESSION['username'];

5. `$_SERVER`: 스크립트 이름, 문서 루트, 클라이언트 IP 주소와 같은 서버 및 환경에 대한 정보를 포함하는 배열입니다. 예를 들어:

$script_name = $_SERVER['SCRIPT_NAME'];

$document_root = $_SERVER['DOCUMENT_ROOT'];

$client_ip = $_SERVER['REMOTE_ADDR'];

이들은 PHP에서 가장 일반적으로 사용되는 완전 전역이지만 $_FILES, $_REQUEST, $_ENV 및 $GLOBALS와 같은 다른 것들이 있습니다.

728x90

'IT' 카테고리의 다른 글

PHP의 Fiber  (0) 2023.03.01
PHP의 Fiber  (0) 2023.03.01
PHP의 Superglobals  (0) 2023.03.01
PHP의 Iterator  (0) 2023.03.01
PHP설명서  (0) 2022.02.19
728x90

PHP에는 모든 범위에서 항상 액세스할 수 있는 내장 변수인 여러 개의 완전 전역 변수가 있습니다.

  1. `$_GET`: URL 매개변수를 통해 현재 스크립트에 전달되는 변수의 배열입니다. 예를 들어:

www.example.com?name=John&age=30

스크립트에서 다음과 같이 이러한 값에 액세스할 수 있습니다.

$name = $_GET['name'];

$age = $_GET['age'];

2. `$_POST`: HTTP POST 요청을 통해 현재 스크립트에 전달되는 변수의 배열입니다. 예를 들어:

<form method="post">

<input type="text" name="username">

<input type="password" name="password">

<input type="submit" value="Submit">

</form>

양식을 처리하는 스크립트에서 다음과 같이 이러한 값에 액세스할 수 있습니다.

$username = $_POST['username'];

$password = $_POST['password'];

3. `$_COOKIE`: 클라이언트 컴퓨터에 쿠키로 저장된 변수의 배열입니다. 예를 들어:

setcookie('username', 'John', time() + (86400 * 30));

스크립트에서 다음과 같이 이 값에 액세스할 수 있습니다.

$username = $_COOKIE['username'];

4. `$_SESSION`: 서버에 저장되고 웹사이트의 모든 페이지에서 사용할 수 있는 세션 변수의 배열입니다. 예를 들어:

session_start();

$_SESSION['username'] = 'John';

스크립트에서 다음과 같이 이 값에 액세스할 수 있습니다.

$username = $_SESSION['username'];

5. `$_SERVER`: 스크립트 이름, 문서 루트, 클라이언트 IP 주소와 같은 서버 및 환경에 대한 정보를 포함하는 배열입니다. 예를 들어:

$script_name = $_SERVER['SCRIPT_NAME'];

$document_root = $_SERVER['DOCUMENT_ROOT'];

$client_ip = $_SERVER['REMOTE_ADDR'];

이들은 PHP에서 가장 일반적으로 사용되는 완전 전역이지만 $_FILES, $_REQUEST, $_ENV 및 $GLOBALS와 같은 다른 것들이 있습니다.

728x90

'IT' 카테고리의 다른 글

PHP의 Fiber  (0) 2023.03.01
PHP의 Superglobals  (0) 2023.03.01
PHP의 Iterator  (0) 2023.03.01
PHP설명서  (0) 2022.02.19
그누보드5/영카트5 트위터식 로그인 솔루션  (0) 2021.03.08
728x90

PHP의 Iterator는 반복자 패턴에서 사용되는 개념입니다. 이 패턴은 객체의 내부 상태를 숨기고, 반복자를 통해 객체에 접근할 수 있도록 합니다. 예를 들어, 사용자가 정의한 배열 클래스에 대해서 foreach 루프를 실행할 수 있습니다.

class MyIterator implements Iterator {

private $position = 0;

private $array = [

"first",

"second",

"third"

];

public function __construct() {

$this->position = 0;

}

function rewind() {

var_dump(__METHOD__);

$this->position = 0;

}

function current() {

var_dump(__METHOD__);

return $this->array[$this->position];

}

function key() {

var_dump(__METHOD__);

return $this->position;

}

function next() {

var_dump(__METHOD__);

++$this->position;

}

function valid() {

var_dump(__METHOD__);

return isset($this->array[$this->position]);

}

}

$it = new MyIterator;

foreach($it as $key => $value) {

var_dump($key, $value);

echo "\n";

}

위 예제에서 MyIterator 클래스는 Iterator 인터페이스를 구현합니다. rewind, current, key, next, valid 메소드를 구현해야 합니다. 이 메소드들은 foreach 루프에서 자동으로 호출됩니다.

728x90

'IT' 카테고리의 다른 글

PHP의 Superglobals  (0) 2023.03.01
PHP의 Superglobals  (0) 2023.03.01
PHP설명서  (0) 2022.02.19
그누보드5/영카트5 트위터식 로그인 솔루션  (0) 2021.03.08
그누보드강좌  (0) 2020.10.18
728x90

#PHP한글설명서, #PHP설명서, #PHP매뉴얼, #PHP언어, #PHP프로그래밍, #PHP소스, #PHP문법, #PHP함수

PHP 한글설명서를 제공합니다.

 

https://php.365ok.co.kr/

 

php 함수

php 클래스와 객체

 

728x90

'IT' 카테고리의 다른 글

PHP의 Superglobals  (0) 2023.03.01
PHP의 Iterator  (0) 2023.03.01
그누보드5/영카트5 트위터식 로그인 솔루션  (0) 2021.03.08
그누보드강좌  (0) 2020.10.18
유료게시판 및 강좌 사이트 솔루션  (0) 2020.10.08
728x90

그누보드5/영카트5에서 이메일, 휴대폰번호, 아이디 등으로 로그인을 할 수 있습니다.

데모

https://skin.fiance.co.kr/

아이디 : demo

email : demo@demo.net

hp : 010-1234-5678

pass : demo

작업버전

그누보드 5.4.4.9

** 그누보드5/영카트5 모든 버전 적용 가능

구매는 냑컨텐츠몰 또는 웹학교컨텐츠몰에서 가능합니다.

728x90

'IT' 카테고리의 다른 글

PHP의 Iterator  (0) 2023.03.01
PHP설명서  (0) 2022.02.19
그누보드강좌  (0) 2020.10.18
유료게시판 및 강좌 사이트 솔루션  (0) 2020.10.08
프로그램판매용 온라인쇼핑몰 - TJ컨텐츠몰  (0) 2020.09.29

+ Recent posts