간단한 php 문법
php 코드는 어떤 문법을 가지고 있는지 궁금해서 살짝 살펴봤다.
JS랑 비슷한거 같으면서도 달라서 신기했다.
https://www.w3schools.com/php/
W3Schools.com
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com
배열
echo "<h3>1. 인덱스 배열 </h3>";
$fruit = array("apple", "banana", "grape");
echo $fruit[1] . ' <- echo $fruit[1] <br>';
echo 'var_dump($fruit) -> <br>';
var_dump($fruit);
/* var_dump(): 데이터 타입과 값을 반환하는 메서드 */
echo "<br> ====================== <br>";
echo "<h3>2. 연관 배열 </h3>";
$age = array("john" => 3, "ben" => 2, "chris"=> 5);
echo "ben is ".$age['ben']." years old<br>";
var_dump($age);
var_dump() 메서드를 사용하면 배열에 몇 개의 인덱스가 있고 각각 어떤 데이터 타입과 값을 가졌는지 나온다.
클래스 만들기
echo "<br> ====================== <br>";
echo "<h3>3. 클래스 만들기</h3>";
class Car {
public $color;
public $model;
public function __construct($color, $model) {
$this->color = $color;
$this->model = $model;
}
public function message() {
return "My car is a " . $this->color . " " . $this->model . "!";
}
}
$myCar = new Car("black", "Volvo");
echo $myCar -> message();
echo "<br>";
$myCar = new Car("red", "Toyota");
echo $myCar -> message();
이건 클래스랑 생성자함수 만들고 객체에 넣는 방식이 JS랑 같았다.
그래서 php는 JS랑 비슷하다고 느꼈다.
따옴표 차이, 변수 더하기
echo "<br> ====================== <br>";
echo "<h3>따옴표의 차이 확인하기</h3>";
$x = "Linda";
echo "Hello $x (is double)<br>"; // 설정한 변수가 들어감
echo 'Hello $x (is single)'; // 문자열로 들어감
echo "<br> ====================== <br>";
echo "<h3>변수 더하기</h3>";
$a = "Hello";
$b = "World";
$c = "$a $b";
echo $c; // Hello World 출력
따옴표의 크기에 따라서 변수의 입력 여부가 달라진다는 사실이 흥미로웠다.
큰 따옴표로 감싸서 echo로 출력하면 변수가 제대로 나오는데, 작은 따옴표로 감싸면 그냥 문자열이 되어버린다.
그래서 변수 설정하고 큰 따옴표 안에 2개의 변수를 집어넣으면, 하나의 문자열로 나올 수 있다는게 신기했다.
현재 시간 출력하기
echo "<br> ====================== <br>";
echo "<h3>현재 시간 출력하기</h3>";
echo "Today is " . date("y-m-d")." ".date("l");
date_default_timezone_set("Asia/Seoul");
echo "<br>Now is " . date("H:i:s");
오늘 날짜와 시간을 출력하는 것도 실험해봤다.
php는 서버측 스크립트 언어라서 시간을 출력해도 자동으로 굴러가지 않는다.
초 단위가 자동으로 변경되는걸 보고싶다면 JS를 같이 써야함. (setInterval)
문자열과 숫자 더하기 가능
echo "<br> ====================== <br>";
echo "<h3>문자열과 숫자 더하기 가능!</h3>";
$z = "59" + 100;
echo $z;
이게 제일 신기했다.
JS는 저렇게 쓰면 문자열과 숫자의 결합이어서 59100이 되어버릴텐데, php에서는 계산이 되어 159가 나왔다.
저게 계산이 되는 이유가 궁금했는데, php는 유연한 데이터 타입을 가진 언어이고, 문자열을 자동으로 숫자로 변환하려고 시도하는 '타입 캐스팅' 기능 때문에 계산이 된다.
저렇게 작성했지만 계산은 안 되게 하려면 어떻게 해야할지 궁금했는데, php는 변수의 타입은 지정할 수 없어서, 저기서 59가 문자열이라고 표시할 수 없다고 한다. 저기서 계산을 안하려면, 더하기가 아니라 마침표를 찍어서 문자열 결합이 되도록 만들어야 한다.
php 오래된 언어라고 무시했는데, 알고보니 참 신기한 언어다.