CI 묻고 답하기

제목 음...이건 문법 질문인것같아요...하하하
글쓴이 울트라맨 작성시각 2015/01/15 10:10:10
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 17146   RSS
$CI =& get_instance();

        if ($attributes == '')
        {
            $attributes = 'method="post"';
        }

        // If an action is not a full URL then turn it into one
        if ($action && strpos($action, '://') === FALSE)
        {
            $action = $CI->config->site_url($action);
        }

        // If no action is provided then set to the current url
        $action OR $action = $CI->config->site_url($CI->uri->uri_string());

form_helper를 보던중에 다음과 같은게 있어서 질문드립니다.
빨간색으로 한것처럼 $action OR $action 은 무엇인가요???
가변변수 설정인가요???
 무엇인가요?? 저런건 난생 처음봐서...ㅠ
좀알려주세요
 다음글 로그인세션 구현문제입니다. (2)
 이전글 restserver 라이브러리 사용중에 질문이 있습니다... (8)

댓글

변종원(웅파) / 2015/01/15 15:03:54 / 추천 0
저렇게 사용하는 것은 처음 보네요. ^^;;;

$action 이 있으면 참이기에 패스
없으면 or 이후로 $action 에 값 대입.

결국 값 유무 체크해서 없으면 값을 넣어주는(초기화) 로직입니다.
울트라맨 / 2015/01/15 15:07:48 / 추천 0
그렇다면 혹시

if(!isset($action)){
 $action = $CI->config->site_url($CI->uri->uri_string());
//$action에 값 입력
}

이런식으로 변경을 해도 문제가 없다는 말씀인가요??
울트라맨 / 2015/01/15 15:13:08 / 추천 0
자답입니다.

if(!isset($action) || empty($action)){
            $action = $CI->config->site_url($CI->uri->uri_string());
        }
        var_dump($action);

이렇게 쓰니깐 값이 똑같이 나오네요..

paramter에 $action이 있어서 isset은 안걸치길래 empty로 한번 더 검사했습니다.

웅파님 감사합니다~ (꾸벅)
코드이그 / 2015/01/15 15:14:41 / 추천 0
OR은 php문법에 관한것이에요 ㅎ
웅파님께서 잘 말씀해주신 그대로 입니다~

참고로 3.0 버전에서 컨트롤러 등 파일에서
다이렉트로 파일에 진입하는걸 방지하는 로직이 아래처럼 바뀌었어요.
(2.2 기존) if ( ! defined('BASEPATH')) exit('No direct script access allowed');
(3.0 dev) defined('BASEPATH') OR exit('No direct script access allowed');

둘중 성능이나 효율성 부분같이 자세한 부분은 모르겠지만
신버전에서 OR로 변경 되었다는것을 참고해서 저도 저런식으로 활용 가능하다면 저런식으로 변경할 생각입니다 ㅎ

http://php.net/manual/en/language.operators.logical.php
더 자세한 내용은 메뉴얼을 한번 참고해보셔도 좋을거 같아요 ㅎ
 
울트라맨 / 2015/01/15 15:17:31 / 추천 0
감사합니다~~
아무래도 성능이 더 좋아졌을꺼라 생각됩니다.
개발시에 참고하겠습니다
감사합니다~