>  기사  >  백엔드 개발  >  PHP에서 문자열 함수를 직접 파싱하는 방법(스킬 공유)에 대해 이야기해보겠습니다.

PHP에서 문자열 함수를 직접 파싱하는 방법(스킬 공유)에 대해 이야기해보겠습니다.

青灯夜游
青灯夜游앞으로
2021-10-09 18:52:252065검색

PHP에서 문자열 구문 분석 기능을 직접 사용하는 방법은 무엇입니까? 다음 기사에서는 PHP 문자열에서 직접 구문 분석 함수를 작성하는 방법을 공유할 것입니다. 이것이 도움이 되기를 바랍니다.

PHP에서 문자열 함수를 직접 파싱하는 방법(스킬 공유)에 대해 이야기해보겠습니다.

PHP 문자열에서 함수를 직접 구문 분석하는 방법

PHP에서 문자열 함수를 직접 파싱하는 방법(스킬 공유)에 대해 이야기해보겠습니다.

PHP의 문자열은 이론적으로 함수를 구문 분석할 수 없고 변수만 구문 분석할 수 있습니다. 최근에 나는 문자열 구문 분석 함수를 직접 구문 분석할 수 있는 특별한 작성 방법을 발견했습니다.

Writing

// 单行
${!${''} = 代码}

// 多行
${!${''} =
    代码
}

개인적으로 이런 글쓰기 방식은 사실 변수를 파싱해서 이루어진다고 생각합니다. = 左边是一个特殊名称的变量,= 오른쪽의 코드 블록이 할당 변수를 충족하는 한 문자열에서 구문 분석이 가능합니다.

예제

다음 코드는 학습 및 의사소통 전용입니다. 이러한 방식의 작성은 실제 업무에서는 권장되지 않습니다.

One,

$fruits = implode('、', ['apple', 'banana']);
var_dump("fruits: $fruits."); // 正常写法解析变量
// string(23) "fruits: apple、banana."

var_dump("fruits: implode('、', ['apple', 'banana'])."); // 错误写法不能够解析函数
// string(44) "fruits: implode('、', ['apple', 'banana'])."

var_dump("fruits: ${!${''} = implode('、', ['apple', 'banana'])}."); // 特殊写法解析函数成功
// string(23) "fruits: apple、banana."

var_dump("fruits: ${!${''} = implode('、',
    [
        'apple',
        'banana'
    ])}."
); // 多行书写依然解析函数成功
// string(23) "fruits: apple、banana."

Two,

var_dump("fruits: ${!${''} = $fruit ?? 'apple'}.");
// string(14) "fruits: apple."

var_dump("fruits: ${!${''} = isset($fruit) ? $fruit : 'apple'}.");
// string(14) "fruits: apple."

Three,

$fruit = function (){
    return 'banana';
};
var_dump("fruits: ${!${''} = $fruit() }.");
// string(15) "fruits: banana."

var_dump("fruits: ${!${''} = call_user_func(function (){
    $fruits = [
        'apple',
        'banana'
    ];
    
    return implode('、', $fruits);
}) }.");
// string(23) "fruits: apple、banana."

Four,

class Fruit
{
    public function __toString()
    {
        return 'banana';
    }

}
var_dump("fruits: ${!${''} = new Fruit() }.");
// string(15) "fruits: banana."

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP에서 문자열 함수를 직접 파싱하는 방법(스킬 공유)에 대해 이야기해보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.cn에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제