programing

PHP 오류:함수 이름은 문자열이어야 합니다.

jooyons 2023. 7. 29. 08:24
반응형

PHP 오류:함수 이름은 문자열이어야 합니다.

PHP 코드 상단에 다음 행을 추가했는데 오류가 발생합니다.

치명적 오류:함수 이름은 라인 2의 /home/reg.php에 있는 문자열이어야 합니다.

<?php
if ($_COOKIE('CaptchaResponseValue') == "false")
{
    header('location:index.php');
    return;
}
?>

노력했습니다.$_COOKIE("CaptchaResponseValue")쿠키가 성공적으로 설정되어 사용 가능합니다.사용할 때 오류가 발생하는 이유는 무엇입니까?$_COOKIE?

그럴 것 같네요.$_COOKIE['name'],것은 아니다.$_COOKIE('name')

$_COOKIE배열이지 함수가 아닙니다.

프로그래밍 언어나 스크립트 언어에서 괄호를 사용하는 것은 일반적으로 함수임을 의미합니다.

하지만$_COOKIEphp는 함수가 아니라 배열입니다.배열의 데이터에 액세스하려면 데이터를 가져올 인덱스를 나타내는 사각형 대괄호('[' 및 ']')를 사용합니다.그래서 함으로써$_COOKIE['test']당신은 기본적으로 이렇게 말하고 있습니다: "'테스트' 인덱스의 데이터를 주세요.

이제, 여러분의 경우, 두 가지 가능성이 있습니다. (1) 쿠키 내부를 들여다봄으로써 쿠키가 거짓인지 확인하거나 (2) 쿠키가 존재하지 않는지 확인하는 것입니다.

이를 위해 기본적으로 변수가 설정되어 있는지 여부를 확인하는 isset 기능을 사용합니다.

if ( isset($_COOKIE['test'] ) )

값이 거짓인지 확인하고 설정된 경우 다음 작업을 수행할 수 있습니다.

if ( isset($_COOKIE['test']) && $_COOKIE['test'] == "false" )

한 가지 염두에 둘 수 있는 것은 첫 번째 테스트가 실패할 경우 다음 문장이 AND이면 확인하는 것조차 귀찮지 않다는 것입니다.&&).

그리고 실제로 "함수는 문자열이어야 합니다"라는 오류가 발생하는 이유를 설명하려면 이 페이지를 참조하십시오.그것은 PHP의 기본적인 함수 생성에 관한 것인데, 당신이 기억해야 할 것은 PHP의 함수는 특정 유형의 문자만 포함할 수 있다는 것입니다.$이것들 중 하나가 아닙니다.PHP에서 이후로$변수를 나타냅니다.

기능은 다음과 같습니다._myFunction _myFunction123 myFunction그리고 다른 많은 패턴에서도 마찬가지이지만 $ 및 %와 같은 문자와 혼합하는 것은 효과가 없습니다.

사각형 교정기를 사용해 보십시오.$_COOKIE괄호가 아닙니다.다음과 같이:

<?php
if ($_COOKIE['CaptchaResponseValue'] == "false")
{
    header('Location: index.php');
    return;
}
?>

당신의 위치 헤더 통화도 조금 수정했습니다.

그럴 것이다.$_COOKIE['CaptchaResponseValue'],것은 아니다.$_COOKIE('CaptchaResponseValue')

쿠키가 설정되어 있는지 확인하려면 ...을 사용

if (isset($_COOKIE['cookie']))

PHP.js에서 $_COOKIE는 함수입니다 ;-)

function $_COOKIE(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return decodeURIComponent(c.substring(nameEQ.length,c.length).replace(/\+/g, '%20'));
    }
    return null;
}

http://phpjs.org/functions/setcookie:509 를 통해

교정기가 사용되는 방법에 대한 유용한 설명(위의 Filip Ekberg의 유용한 답변 외에도)은 프로그래밍 언어의 괄호에서 찾을 수 있습니다.

<?php
    require_once '../config/config.php';
    require_once '../classes/class.College.php';
    $Response = array();
    $Parms = $_POST;
    $Parms['Id'] = Id;  

        $Parms['function'] = 'DeleteCollege';
        switch ($Parms['function']) {
        case 'InsertCollege': {
            $Response = College::InsertCollege($Parms);
            break;
        }
        case 'GetCollegeById': {
            $Response = College::GetCollegeById($Parms['Id']);
            break;
        }
        case 'GetAllCollege': {
            $Response = College::GetAllCollege();
            break;
        }
        case 'UpdateCollege': {
            $Response = College::UpdateCollege($Parms);
            break;
        }
        case 'DeleteCollege': {
            College::DeleteCollege($Parms['Id']);
            $Response = array('status' => 'R');
            break;
        }
    }
    echo json_encode($Response);
?>

언급URL : https://stackoverflow.com/questions/1611709/php-error-function-name-must-be-a-string

반응형