본문 바로가기
php

[PHP] 변수 데이터형 #PHP Data Types

by bryan.oh 2020. 12. 13.
반응형

PHP Data Types

  • String
  • Integer
  • Float
  • Boolean
  • Array
  • Object
  • NULL
  • Resource

 

설명은 역시 예제로 보는게 빠르죠.

 

# String

<?php
$name = "Bryan";
echo "1. Hello~".$name;

echo "<br/>";
echo "2. Hello~$name";

echo "<br/>";
echo '3. Hello~$name';
?>

결과

1. Hello~Bryan
2. Hello~Bryan
3. Hello~$name
  • " " 안에 변수를 쓰면 변수의 값이 나옵니다. ' ' 안에 사용하면 문자 그대로 출력됩니다.
  • 문자 이어붙히기는 .  을 사용합니다.  "hi~"."bye~"."!"  == "hi~bye~!"

 

# Integer

<?php
$a = 0x1A; // hexadecimal
$b = 123; // decimal
$c = 0123; // octal

echo "<br/>$a";
echo "<br/>$b";
echo "<br/>$c";
?>

결과

26
123
83
  • 일반적으로 사용하는것은 $b 처럼 숫자를 대입하는것입니다.
  • 하지만 앞에 0 이 있으면 8진법으로 인식하죠.
  • 명시적으로 8진법을 계산하는 함수는 octdec()decotc() 입니다.

<참고. 사용할 일은 일반적으로 많지 않습니다.>

echo octdec('0123');	# 83
echo "<br/>";
echo decoct(83);	# 123

 

# Float

<?php
  $a = 12.67;
  roundTest($a);
  echo "<br/><br/>";
  $a = 12.34;
  roundTest($a);

  echo "<br/>";
  $a += 1;
  echo "<br/>+1 = ".$a;
  $a *= 1;
  echo "<br/>*1 = ".$a;
  $a /= 1;
  echo "<br/>/1 = ".$a;
  echo "<br/>(int) = ".(int)$a;

  function roundTest($v){
    var_dump($v);
    echo "<br/>ceil : ".ceil($v);
    echo "<br/>floor : ".floor($v);
    echo "<br/>round : ".round($v);
  }
?>

결과

float(12.67)
ceil : 13
floor : 12
round : 13

float(12.34)
ceil : 13
floor : 12
round : 12
13.34
  • 자주 사용하는 기본 함수입니다. ceil(올림), floor(버림), round(반올림)
  • 정수인 1 을 더하거나 곱하거나 나눠도 결과는 float 형을 유지합니다.
  • (int)$a 로 형변환하면 소수점은 버림(floor)합니다.
  • 형변환은 (int), (string), (double), (bool), (array), (object) 를 사용합니다.

 

 

# Boolean

<?php
  $a = true;
  $b = false;

  if( $a ){
      echo "<br/> a!";
  }

  if( $b ){
      echo "<br/> b!";
  }
?>

결과

a!

 

# Array

<?php
  $arr = array("a","b","c");
  var_dump($arr);
  echo "<br/>";
  
  foreach($arr as $e){
  	echo "<br/>$e";
  }
  
  echo "<br/>";
  
  $arr = array("name"=>"bryan", "age"=>30, "isAdult"=>true);
  foreach($arr as $k => $e){
  	echo "<br/>$k : $e";
  }
?>

결과

array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" }

a
b
c

name : bryan
age : 30
isAdult : 1
  • array 안에 서로 다른 type 을 사용할 수 있습니다. array 도 가능.
  • array 에 key=>value 가 아니면 기본적으로 숫자가 key 가 됩니다. [0]=>"a", [1]=>"b"...

 

# Object

<?php
  class User {
    public $name;
    public $money;
    public function __construct($name, $money) {
      $this->name = $name;
      $this->money = $money;
      echo "Create User Object : $this->name has $this->money WON<br/>";
    }
    public function addMoney($money) {
      $this->money += $money;
      return "※ $this->name gets $money WON";
    }
    public function useMoney($money) {
      $this->money -= $money;
      return "※ $this->name uses $money WON";
    }
    public function getInfo() {
      return "Now $this->name has $this->money WON";
    }
  }

  $user01 = new User("bryan", 10000);
  $user02 = new User("kevin", 50000);
  echo $user01->getInfo()."<br/>";
  echo $user01->addMoney(30000)."<br/>";
  echo $user01->getInfo()."<br/>";
  echo "<br/>";
  echo $user02->getInfo()."<br/>";
  echo $user02->useMoney(5000)."<br/>";
  echo $user02->getInfo()."<br/>";
?>

결과

Create User Object : bryan has 10000 WON
Create User Object : kevin has 50000 WON
Now bryan has 10000 WON
※ bryan gets 30000 WON
Now bryan has 40000 WON

Now kevin has 50000 WON
※ kevin uses 5000 WON
Now kevin has 45000 WON
  • Class 는 객체의 템플릿이고 객체는 Class 의 instance 입니다.
  • __construct() 함수는 Class 객체가  생성될때 이 함수를 자동으로 호출합니다.
  • Class 내에서 자신의 변수에 접근할땐 $this-> 를 사용합니다.

 

# Null

<?php
  $a = "Hello bryan!";
  $a = null;
  var_dump($a);
  
  if( $a ){
    echo "<br/>true~";	
  }else{
    echo "<br/>Here~~ false~";
  }
?>

결과

NULL
Here~~ false~

 

 

# Resource

  • 특수 자원 유형은 실제 데이터 유형이 아닙니다. 
  • PHP 외부의 함수 및 리소스에 대한 참조를 저장하는 것입니다. 
  • 리소스 데이터 유형을 사용하는 일반적인 예는 데이터베이스 호출입니다. 

 

 

불펌금지
<개발인생 tistory> 출처표시

 

728x90
반응형

댓글