PHP 공부2

황정성·2026년 4월 16일

PHP 변수의 범위, 지역변수, 글로벌변수

vs코드에서 1.php 파일을 새로 만들자

<?php
// xampp
// 웹서버, DB서버, PHP 설치
// http://php.net/manual/en/install.php

$txt = "PHP";
echo "I love $text!";

이렇게 PHP로만 구성 되어 있으면 마지막 ?>을 생략 가능

localhost:포트번호 를 주소창에 입력하면 기본적으로 index.php가 나온다

1.php를 렌더링 하려면 localhost:포트번호/1.php 를 주소창에 입력하면 된다
1.html 만들어서 localhost:포트번호/1.html 를 주소창에 입력한 것과 다를게 없다

셜정하기 따라서 html파일에 php를 인식 가능하게 하기도 한다

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<body>
<h1>My first PHP page</h1>
	<?php
    	echo "Hello world";
    ?>
</body>
</html>

이렇게 html 요소와 같이 쓰는게 가능하다
주석은 // 또는 #을 쓰고 /**/로 다중 주석이 가능하다

php는 서버사이드스크립트로 브라우저로 소스보기 하면 주석이 보이지 않는다

다시 1.php에서

<?php
$txt = "안녕하세요"; //문자열
$x = 5; //정수
$y = 10.5; //실수
?>

이 처럼 변수 타입에 대한 선언은 필요 없다
대소문자 구분이 되니 조심하자!

<?php
$x = 5;

function myTest() {
	echo "변수 x의 출력값 $x"
}

myTest();
?>

이렇게 하면 Undefined variable이라고 렌더링 될 것이다.

다시

<?php
$x = 5;

function myTest() {
	echo "변수 x의 출력값 $x"
    echo "<br>";
}

myTest();

echo "변수 x의 출력값 $x"
?>

변수 x에 값은 잘 들어 갔다
(여기서 echo "<br>";는 줄바꿈을 위해 넣었다.)

함수 바깥에서 선언한 변수가 함수 내에서는 적용되지 않는다.

함수 내에 변수를 가져오려면

<?php
$x = 5;

function myTest() {
	global $x;
	echo "변수 x의 출력값 $x"
    echo "<br>";
}

myTest();

echo "변수 x의 출력값 $x"
?>

함수 내에 변수 x를 다시 글로벌로 선언을 해주면 함수내의 x값이 5로 잘 출력 된다
결국 글로벌 선언으로 인해 함수내에서 선언 했더라도 함수 내에서 값이 변하면 전체 출력값이 변하게 된다.

글로벌 선언을 하지 않고 함수 내에서 변수 x를 다시 새롭게 초기화 하면 함수 내의 x와 함수 바깥의 x는 다른 값을 가질 수 있게 된다

PHP 출력 함수, 문자열 길이, 문자열 뒤집기, 문자열 찾기

2.php 파일을 새로 만들자


<?php
	echo"";
    print"";
?>

이 둘은 완전히 동일하다


<?php
	echo"아! <h2>PHP는 재밌다"</h>";
?>

이렇게 출력문 내에서 마크업 언어 같이를 쓸 수 있다

이전에 썼던 것과 같이 변수도 사용가능하다


<?php
	$txt = "Learn PHP";
	echo "<h2>".$txt."</h>";
?>

이렇게 마크업 사이에 ..을 넣고 그 사이에 변수 사용도 가능하다


<?php
	$x = 1;
    $y = 2;
	echo "<h2>".$txt."</h>";
    echo $x + $y;
?>

이렇게 쓰면 사칙연산도 출력도 가능하다

<?php
	$x = 1;
    $y = 2;
	
	var_dump($x);
?>

이렇게 해당 변수가 어떤 타입을 가지고 있는지 출력하는 빌트인 함수도 있다

<?php
	$x_len = strlen("한글");
	
	echo($x_len);
?>

이 처럼 문자열을 반환하는 함수도 있다
이건 말 그대로 반환이기에 따로 출력해야 확인 할 수 있다

<?php
	echo str_word_count("Hello World");
?>

이건 문장의 캡카운트를 반환하는 함수인데, 한글은 지원 안한다

<?php
	echo strrev("Hello World");
?>

문자열을 뒤집어 반환하는 함수 이다

<?php
	$a = strpos("Hello world", "world");
	echo 
    $a;
?>

문자열을 찾아 인덱스를 반환하는 함수 이다 위의 출려값은 6이다.
이것은 정규식 느낌으로 이메일 판단할 때 쓴다

PHP 숫자 문자를 구분, 하는 is_numeric, is_int와 차

3.php파일을 새로 만든다

<?php
	$str = 나는 자랑스러운 미국인이다.";
    
    $str1 = str_replace("미국인", "한국인", $str);
    
    echo $str1;
?>

str_replace는 바꿀 대상 문자, 바꿀 문자, 대상 변수명을 입력하면 문자가 바뀐다

많은 함수들이 있으니 다 암기 할 필요없고 그때그때 구글링해서 찾아 쓰자

<?php
	$x = 1234;
    
    var_dump(is_int($x));
?>

여기서 is_int는 해당 변수가 정수인지 판별을하고 boolean으로 반환한다

<?php
	$x = "안녕";
    
    if( is_numeric($x) ) {
    	echo "숫자입니다.";
        }else {
        echo "숫자가 아닙니다"
        }
?>

"안녕"대신 "3"을 넣어도 숫자로 판별한다. 좀 신기한 기능이다
타입을 명확히 구분 해야 한다면 is_int를 쓰자

<?php
	echo (pi());
?>

이러면 pie값 3.141592..값이 출력 된다

<?php
	echo (min(0. 4. 2. -7, 5));
?>

이러면 가장 작은값인 -7을 찾아주고 max로 바꾸면 가장 큰값을 찾아준다

PHP 난수발생, 발올림, 절대값, 루트값, 상수, 파

<?php
$a = -12
$b = abs($a);

echo $b;
?>

abs();는 절대값을 반환한다.

<?php
$b = abs($4);

echo $b;
?>

말그대로 스퀘어루트의 줄임말이다 스퀘어루트값을 반환한다

<?php
$b = round($5);

echo $b;
?>

반올림해서 반환하는 함수 이다. 실수일 경우 정수로 반환한다
음수의 경우 가장 가까운 정수로 반환을 한다

<?php
$b = rand();

echo $b;
?>

난수를 반환한다. 자바스크립트와 다르게 정수로 반환한다

<?php
$b = rand(1, 5);

echo $b;
?>

1에서 부터 5까지 범위가 지정되어 난수가 생성된다.

<script>
	const GREETING = "안녕하세요";
    document.write(GREETING);
</script>
<?php
define("GEREETING", "안녕하세요");
echo GREETING;
?>

위는 자바스크립트 상수 선언이고 아래는 PHP상수 선언이다.
상수이기에 대입이 안된다

PHP 산술연산자, 할당연산자

산술연산자는 다른 프로그래밍언어와 같기에 생략한다

할당연산자도 다른 프로그래밍 언어와 같기에 생략한다

PHP 비교연산자, 증감연산자

<?php
$a = 10;
$b = "10";

if ($a == $b) {
	echo "a와 b는 같다";
   }else{
   	echo "a와 b는 다르다";
   }
?>

문자열 10과 정수 10은 ==연산자로 같다로 표시 된다
하지만 ===연산자는 다르다고 표시 된다
===자료형까지 본다

그리고 != 과 같은 <>도 있다

!==는 자료형까지 보며, 비교한다

증감연산자는 다른언어와 같기에 생략한다

PHP 논리연산자

//and, or, xor, &&, ||, !

$x = true;
$y = true;

var_dump($x and $y);

결과 값은 당연히 bool(true)로 나올 것이다
and는 논리 곱이다 1 = true, 0 = false라고 생각하자.

or은 논리 합이다 1 이상은 true로 취급하기에 둘다 트루여도 트루로 취급

xor는 베타적논리합으로 true가 두번이면 false가 나오고 나머지는 or과 같다. 서로 의견이 일치하지 않을경우 true이다.

나머지는 다른 프로그래밍 언어와 같기에 생략한다.

문자열 연산자

//. .=

$a = "안녕";
$b = $a . "하세요";
echo $b;

"안녕" 문자열에 "하세요"가 더해져 "안녕하세요"가 출력된다.
이것은 $a =. "하세요";를 $b자리에 대신 써도 동일한 출력값이 나온다.

0개의 댓글