개발 꿀팁/PHP

php 문법 기술

Jammie 2022. 8. 24. 11:46
반응형

1.DIRECTORY_SEPARATOR와 PATH_SEPARATOR
DIRECTORY_SEPARATOR:경로 구분자, 리눅스 위 '/' 윈도에서는 '\'입니다
PATH_SEPARATOR:include 여러 경로로 사용되며, Windows(윈도우) 아래에서include 여러 경로를 원하시면,너는 써야 한다”;”칸막이,근데 리눅스에서는 그냥 써요”:”칸막이의
2.set_include_path와 get_include_path
이 방법은 파일의 include 경로를 설정할 수 있습니다. 설정 후 include 파일이 먼저 incl에 있습니다.ude_path에서 검색, 설정한 경로로 검색하지 않은 경우.
예를 들어 include 디렉터리에 router.php와 config.php가 있습니다.샘플 include

set_include_path('include');
include('route.php');
include('config.php');

또한 이 방법은 여러 개의 include_path를 PATH_SEPARATOR로 구분하여 지정할 수 있다.
예를 들어 ./a./b./c의 세 개의 디렉터리가 있습니다. 각 디렉터리에 각각 a.php, b.php, c.php,include 세 디렉터리의 파일

$inc_path = array('a','b','c');
set_include_path(get_include_path().PATH_SEPARATOR.implode(PATH_SEPARATOR,$inc_path));
include('a.php');
include('b.php');
include('c.php');

include_path 보기 get_include_path()



3.call_user_func와 call_user_func_arraY
call_user_func 사용자 정의 메서드를 호출합니다. 첫 번째 인자는 호출할 메서드 이름입니다.두 번째 매개 변수는 호출 방법에 전달될 매개 변수입니다

function foo($a,$b){
    echo $a.' '.$b;
}
 
call_user_func('foo',100,200); // 출력:100 200

클래스 메소드를 호출하다

class Foo{
    function show($a, $b){
        echo $a.' '.$b;
    }
}
 
call_user_func(array('Foo','show'), 100, 200); // 출력100 200
call_user_func_array(array('Foo','show'), array(300,400)); // 출력 300 400

4.func_num_args와 func_get_arg와 func_get_args
func_num_args() 는 호출된 메서드의 들어오는 매개 변수 개수를 반환합니다. 형식은 전체 형식입니다.
func_get_arg() 지정한 인자 값을 되돌려줍니다
func_get_args() 는 모든 매개 변수 값을 되돌려줍니다. 형식은 배열입니다

function foo(){
    $num = func_num_args();
    echo $num; // 2
    for($i=0; $i<$num; $i++){
        echo func_get_arg($i); // 1 2
    }
 
    print_r(func_get_args()); // Array
}
 
foo(1,2);

5.php를 이용하여 js파일을 해석하다
apache httpd에서.conf에 추가:

AddType application/x-httpd-php .js

6.콜론으로 블록 표시하기
흐름 제어의 필기 패턴은 두 가지이다.구문 구조. 대괄호로 표현되는 문 블록과 콜론으로 표현되는 문 블록입니다.전자는 보통 순코드에, 후자는 코드와 HTML을 결합할 때 사용한다.

대괄호 표시문 블록

if ($value) {
 // 조작하다; 
} elseif($value) {
 // 조작하다; 
} else {
 // 조작하다;
}

콜론은 문장 블록을 나타냅니다.
콜론 사용" : "자왼쪽 괄호 '{' 대신 endif; endwhile; endfor; endforeach; endswitch; 오른쪽 괄호 '}' 대신 endswitch를 사용합니다

if ($value) :
  // 조작하다
elseif ($value) :
  // 조작하다
else :
  // 조작하다
endif

7.php 잉여금 발생 음수 처리 방법
phpint의 범위는 -214입니다.7483648~ 2147483647, 정수 PHP_INT_MAX로 만나볼 수 있습니다.

나머지를 구하는 숫자가 이 범위를 넘어서면, 넘쳐난다.나오다.그러면서 음수가 나오다

<?php
echo 3701256461%62; // -13
?>

플로트밸(floatval) 방식으로 수치를 부동소수점수로 바꾸더라도 php의 잉여연산은 기본적으로 성형으로 계산하기 때문에 마찬가지로 마이너스가 될 수 있다.
해법은 부동 소수점수를 이용한 잉여법 fmod이다

<?php
$res = floatval(3701256461);
echo fmod($res,62); // 53
?>

8.file_get_contents post 데이터 사용

<?php
 
$api = 'http://demo.fdipzone.com/server.php';
 
$postdata = array(
    'name' => 'fdipzone',
    'gender' => 'male'
);
 
$opts = array(
    'http' => array(
        'method' => 'POST',
        'header' => 'content-type:application/x-www-form-urlencoded',
        'content' => http_build_query($postdata)
    )
);
 
$context = stream_context_create($opts);
 
$result = file_get_contents($api, false, $context);
 
echo $result;
 
?>

9.시간대 설정

ini_set('date.timezone','Asia/Shanghai');
반응형