티스토리 뷰
<!-- 함수 -->
<?php
//간단한 함수
function sum($a, $b){
return $a+ $b;
}
$result = sum(3,4);
echo $result . "<br>";
$result = sum(5,7);
echo $result ."<br/>";
//값에 의한 전달
function swap($a, $b){
$c = $a;
$a = $b;
$b = $c;
}
$num1 = 5;
$num2 = 6;
swap($num1, $num2);
echo "$num1, $num2<br>";
//참조에 의한 인자 전달 : 변수 그자체를 전달
function swap2(&$a, &$b){
$c = $a;
$a = $b;
$b = $c;
}
$num1 = 5;
$num2 = 6;
swap2($num1, $num2);
echo "$num1, $num2<br/>";
//default 인자값
function aaa_net ($url = "https://aaa.net"){
return "홈페이지 : $url<br>";
}
echo aaa_net ();
echo aaa_net ("https://bbb.net");
//배열을 이용해 복수의 값 반환하기
function return_array(){
return array(0,1,2);
}
$array = return_array();
echo "$array[0],$array[1],$array[2]<br/>";
//참조에 의한 반환
function &func(){
static $static = 0;
$static++;
return $static;
}
$var = &func();
echo $var;
func();
func();
echo $var;
$var = 0;
func();
echo $var;
?>
<!-- 배열 -->
<?php
$a [0] = "abc";
$a [1] = "def";
$b ["foo"] = 13;
// array()함수의 사용 : key=value 구조를 사용할 수 있다.
$arr = array (
"name" => "AAA",
7 => "BBB"
);
echo $arr["name"];
echo "<br>";
echo $arr [7];
echo "<br>";
//키를 등록하지 않고 값만 부여 : 인덱스를 통하여 배열에 접근 가능(속도 차이가 없다.)
$arr = array (
"CCC",
"DDD"
);
echo $arr [0];
echo "<br>";
echo $arr [1];
echo "<br>";
//혼합형 : 단, 키를 지정하지 않은 부분에 대해서는 인덱스가 '0'부터 입력 순서대로 지정됨
$arr = array (
"name" => "EE",
"FFF"
);
echo $arr["name"];
echo "<br>";
echo $arr [0];
echo "<br>";
/*
혼합 2 : 숫자를 키로 하는 원소가 있으면 그 후에 인덱스를 설정하지 않은 모든 원소는 그 번호에 이어서 순서대로 인덱스가 설정된다.
*/
$arr = array (
"name" => "GGG",
5 => "HHH",
"III"
);
echo $arr[5];
echo "<br>";
echo $arr [6];
echo "<br>";
// $arr[키] = 값;
$arr2['name'] = 'brown';
$arr2[] = 15;
echo $arr2['name'];
echo "<br>";
echo $arr2[0];
//배열의 제거
$arr = array (
"name" => "JJJ",
"age" => "22",
'sex' => 'male');
echo "<pre>";
//배열의 한 원소 제거
unset($arr['sex']);
print_r($arr); // print_r($array) : 배열의 요소를 형식에 맞게 출력해주는 함수
//배열 전체 제거
unset($arr);
print_r($arr); //undefine
echo "</pre>";
//배열의 연산
//$a + $b : 합집합
//$a == $b : 같은 원소를 가지면 참
//$a === $b : 순서까지 동일하면 참
//$a != $b :원소가 다르면 참
//$a <> $b : 원소가 다르면 참
//$a !=== $b : 원소와 그 순서가 동일하지 않으면 참
//원소의 키가 다르므로 원소가 다른 경우
$a = array(1,2);
$b = array(2,1);
if ($a == $b) echo '$a와 $b는 같은 원소를 갖는다.<br>';
else echo '$a와 $b는 다른 원소를 갖는다.<br>';
//순서가 다르지만 키와 값이 모두 같아서 같은 원소를 갖는 경우
$a = array(1,2);
$b = array(1 =>2, 0 =>1);
if ($a ==$b) echo '$a와 $b는 같은 원소를 갖는다.<br>';
else echo '$a와 $b는 다른 원소를 갖는다.<br>';
//배열의 정렬
/*
sort : 값을 기준으로 정렬,
rsort : 값을 기준으로 내림차순 정렬하여 순서대로 인덱스 배열을 구성
asort : 값을 기준으로 정렬하되 키와 값의 관게를 유지
arsort : 값을 기준으로 내림차순 정렬하되 키와 값의 관계를 유지
*/
//sort
$fruits = array('a'=>"lemon",'b'=>'orange','banana','apple');
sort($fruits);
echo "<pre>";
print_r($fruits);
echo "</pre>";
//asort
$fruits = array('a'=>"lemon",'b'=>'orange','banana','apple');
asort($fruits);
echo "<pre>";
print_r($fruits);
echo "</pre>";
?>
<!-- 객체 -->
<?php
class IronMan { // 아이언맨 클래스 정의
public $Name;
public $Age;
public $Height;
public $Weight;
// 일반적인 생성자
/*
* function __construct($hname){
*
* $this->Name = $hname;
* $this->Age = 1;
* }
*/
/*
* 생성자 2 : 생성자의 함수 오버로딩(Function Overloading)을 지원하지 않기 떄문에 여러개의 생성자를 사용할 수 없다.
* 그렇기 떄문에 파라미터 초기화를 사용하여 여러개의 생성자가 존재하는 것과 같은 효과를 얻을 수 있다.
*/
function __construct($pName, $pAge = 1, $pHeight = 50, $pWeight = 3.5) {
$this->Name = $pName;
$this->Age = 1;
$this->Height = $pHeight;
$this->Weight = $pWeight;
}
public function Eat($foods) {
echo "냠냠~쩝쩝~" . $foods . "<br>";
}
public function Walk($destination) {
echo "또각또각~" . $destination . "까지 걸어갑니다.<br>";
}
public function Talk($words) {
echo $words . "<br>";
}
// 소멸자
function __destruct() { // 소멸자는 생성자와 달리 파라미터를 가지지 못한다.
$this->Talk ( "창을 닫는다" );
}
}
// 인스턴스 생성 및 속성 사용하기
// include 'ironMan.php'; //정의한 ironMan class
$sungil = new IronMan ( '노성일', 5 ); // 5살짜리 노성일 생성
$younghun = new IronMan ( '장영훈', 1, 50, 3.5 );
$younghun = null; // 객체 제거
$sungil->Talk ( $sungil->Age );
$sungil->Walk ( '신림' );
$sungil->Weight = 22; // 22kg
//클래스 상속하기
class NylonMan extends IronMan{//아이언맨 클래스를 상속받는 나일론맨 클래스를 정의
function 걷기(){
echo "아장아장~";
}
}
$myungse = new NylonMan("서명세");
$myungse->걷기();
$myungse->Walk("광주");
?>
'공부 > PHP' 카테고리의 다른 글
PHP 기초 - mode,문장,변수,연산자 (0) | 2017.01.19 |
---|