php原生定界符,php定界符<<<的问题

本文讲述了在开发中遇到的问题,关于如何处理用户不想使用系统默认配置时,如何正确使用定界符(如<?php>)来编写用户配置文件,并揭示了代码中因空格和格式不一致导致的错误。作者分享了解决方案和对完美主义者的共鸣。
摘要由CSDN通过智能技术生成

前言:

今天在撸框架时有个假设性问题,如果用户不想使用系统框架给的配置值时,需要自己设置,那该如何处理,格式又是如何,带着这个问题开发时遇到了定界符使用的一些注意事项:

问题剖析:

开发环境的代码(错误代码)

private static function _init()

{

//1、加载系统配置项

C(include CONFIG_PATH . "/config.php");

//2、加载用户配置项

//先判断文件是否存在

$userpath = APP_CONFIG_PATH . "/config.php";

#问题在此处开始

$userConfigContent = <<< str

return [

//配置项 => 配置的值

];

str;

is_file($userpath) || file_put_contents($userpath, $userConfigContent);

C(include $userpath);

}

生产环境的代码(正确代码)

private static function _init()

{

//1、加载系统配置项

C(include CONFIG_PATH . "/config.php");

//2、加载用户配置项

//先判断文件是否存在

$userpath = APP_CONFIG_PATH . "/config.php";

#问题在下方开始

$userConfigContent = <<< str

return [

//配置项 => 配置的值

];

str;

is_file($userpath) || file_put_contents($userpath, $userConfigContent);

C(include $userpath);

}

对比上面的两段代码,其实并无字数的多少,可以说是一模一样,那为什么第一段错误呢,其实问题在于语法上的错误,定界符开始时后面不得有空格或者其他字符,结束时必须必须顶头,也不可有其他返回字符

语法:

$str = <<

大量的字符串

EOF; //必须是顶头的,不能有返回的字符

后话

其实出现这个问题的朋友,一般都是完美主义者,上上下下左左右右都对齐的时候,突然出现一个不协调的东西,真的很难受,包括作者本人也是,看了几次,感觉代码很奇怪,可是语法就是这样,有什么办法呢,如果你有其它更好的解决办法,也可以告诉我哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值