php 2차원 배열과 문자열 내장함수 / 전역변수와 정적변수

2022. 11. 7. 13:20php

1.배열

<?
	//배열이용 합계, 평균구하기, 배열의 원소는 0부터 시작한다.

   	// $score[0]=78;
   	// $score[1]=83;
   	// $score[2]=97;
   	// $score[3]=88;
   	// $score[4]=78;

    $score = [75,54,34,34,54];

   	$sum = 0;
   	for($a=0; $a<=$scroe; $a++)
   	{
       	    $sum = $sum + $score[$a];
   	}
   
   	$avg = $sum/5;

   	echo("과목 점수 : $score[0], $score[1], $score[2], $score[3], $score[4]<br>");   
   	echo("합계 : $sum, 평균 : $avg <br>");
?>

1-2. 2차원 배열

$배열명[행][열];

<?
 	$score = array(
                 array(88,98,96,77,63),
                 array(86,77,66,86,93),
                 array(74,83,95,86,97)
                );

    for($i=0; $i<3; $i++)
    {
        for($j=0; $j<5; $j++){
            echo "\$score[$i][$j] = ".$score[$i][$j]."<br>"; // 역슬러쉬( \ ) 를 변수앞에 입력하면 변수가 아닌 문자화 한다
        }

            echo"<br>";
    }
            
    for($i=0; $i<3; $i++)
    {
        $sum = 0;

        for($j=0; $j<5; $j++){
            $sum = $sum + $score[$i][$j];
        }

        $avg = $sum/5;
        $student_num = $i + 1;
        echo("$student_num 번째 학생의 점수 => 합계 : $sum,  평균 : $avg <br>");
    }
?>

1-3. 3차원 배열

$배열명[몇번째 행열][행][열];

2.문자열 관련 내장 함수

<?   
	$tel = "010-2777-3333";

	$num_tel = strlen($tel);                      // 문자열의 길이 계산
	
	echo "strlen() 함수 사용 : $num_tel<br>";
	
	$tel1 = substr($tel, 0, 3);                    // 앞에서 세 문자를 가져옴
	$tel2 = substr($tel, 4, 4);		       // 네 번째 문자에서 네 개를 가져옴
	$tel3 = substr($tel, 9, 4);		       // 아홉 번째 문자에서 네 개를 가져옴

	echo "substr() 함수 사용 : $tel1 $tel2 $tel3<br>";

        $phone = explode("-", $tel);            	// 하이픈(-)을 기준으로 문자열 분리

	echo "explode() 함수 사용 : $phone[0] $phone[1] $phone[2]<br>";
?>

3.전역변수  global 변수명;  , $GLOBALS["변수"]

<?
    $c = 0;

    function plus($a,$b){
        global $c;
        $c = $a + $b;
        
        //$GLOBALS["c"]= $a + $b;
    };

    function plusR(){
        global $c;
        echo $c;
        //echo $GLOBALS["c"];
    };

    plus(100,100);
    plusR();
?>

4. 정적변수 (카운터 만들기)   static  변수명;

  • 지역변수 ( 함수 내에서만 생존 )
  • 함수의 계산이 종료되어도 계속 생존
  • 정적변수의 초기화는 초기 1회만 계산된다
<?
   function counter() {
      static $num = 1; // static 생략시 출력값 1 1 1 1 1 1 1 1 1 1 1
      echo $num.'<br>';
      $num++;
   }
   
   for($i=1; $i<11 ; $i++){
      counter();
   }
?>

<!-- 출력값 : 1 2 3 4 5 6 7 8 9 10 -->

5. 사용자 정의 함수

출력값 : 1 에서 100 까지의 합 : 5050

<?
    // hap($a, $b) 함수는 $a에서 $b 까지의 합을 구한다.

    function hap($a, $b)
    {
        $sum=0;
        while($a <= $b)
        {
            $sum=$sum+$a;
            $a++;
        }
        return $sum;
    }

    $from = 1;
    $to   = 100;
	
	$total = hap($from, $to); 
    echo("$from 에서 $to 까지의 합 : $total");
?>

5-1 사용자 정의 함수

놀이공원 입장료 구하기 예시

<?
   	function cal_fee1($day, $age)       // 일반 입장권 요금 구하기
   	{
      	    if ( $day == "주간" )
      	    {
	        if ($age> 12 && $age < 65)
        	    $money = 26000;
                else
             	    $money = 19000;
       	    }
      	    else
	    {
         	if ($age> 12 && $age < 65)
             	    $money = 21000;
         	else
             	    $money = 16000;
      	    }
      
      	    return $money;
   	}

   	function cal_fee2($day, $age)       // 자유이용권 요금 구하기
   	{
      	    if ( $day == "주간" )
      	    {
         	if ($age> 12 && $age < 65)
             	    $money = 33000;
            	else
             	    $money = 24000;
      	    }
      	    else
      	    {
         	if ($age> 12 && $age < 65)
             	    $money = 28000;
         	else
             	    $money = 21000;
      	    }
      
      	    return $money;
   	}

   	function cal_fee3($age)       // 2일 자유이용권 요금 구하기
   	{
       	    if ($age> 12 && $age < 65)
          	$money = 55000;
       	    else
          	$money = 40000;

      	    return $money;
   	}

   	function cal_fee4($age)       // 콤비권 요금 구하기
   	{
   	    if ($age> 12 && $age < 65)
          	$money = 54000;
       	    else
          	$money = 40000;

      	    return $money;
   	}

   	// $category가 1=> 입장권, 2=> 자유이용권, 3=> 2일 자유이용권, 4=> 콤비권 의미

   	$category = 1;       // 입장권 요금을 구하고자 함
   	$age = 13;
   	$day = "야간";

   	if( $category == 1 )
       	    $fee = cal_fee1($day, $age);

   	elseif ( $category == 2 )
                $fee = cal_fee2($day, $age);

   	elseif ( $category == 3 )
       	    $fee = cal_fee3($age);

   	else
       	    $fee = cal_fee4($age);

      
   	if( $category == 1 )
       	    $cat = "일반 입장권";

   	elseif ( $category == 2 )
       	    $cat = "자유이용권";

   	elseif ( $category == 3 )
       	    $cat = "2일 자유이용권";
            else
       	    $cat = "콤비권";

   	echo "구분 : $cat<br>";

	if ($category == 1 || $category==2)
	    echo "때 : $day<br>";
   	
	echo "나이 : $age 세<br>";
   	echo "입장료 : $fee 원";
?>

[놀이공원 요금표]

일반입장권 :  주간  (대인 26,000원)  (소인 및 노인 19,000원)  
                 야간  (대인 21,000원)  (소인 및 노인 16,000원)  

자유이용권 :  주간  (대인 33,000원)  (소인 및 노인 24,000원)  
                 야간  (대인 28,000원)  (소인 및 노인 21,000원)

2일 자유이용권       (대인 55,000원)  (소인 및 노인 40,000원)  

콤비권                 (대인 54,000원)  (소인 및 노인 40,000원)

* 소인은 12세 이하/노인은 65세 이상

'php' 카테고리의 다른 글

PHP API 함수로 데이터 불러오기  (0) 2022.11.11
php <form> 유효성 검사 , 아스키코드, get , post  (0) 2022.11.08
php 기본 문법과 제어문  (0) 2022.11.07