如何检查设置在php字符串中的被调用字符串?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何检查设置在php字符串中的被调用字符串?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1859字,纯文字阅读大概需要3分钟。
内容图文
![如何检查设置在php字符串中的被调用字符串?](/upload/InfoBanner/zyjiaocheng/658/31c48242ac2843078b890096771d87e8.jpg)
我正在寻找调用多个字符串并将它们连接成一个字符串.我希望能够检查所有被调用的字符串是否都已设置,而不必使用isset();.每个使用的字符串.
我理想地希望拥有:
<?php
$name = "John Smith";
$age = "106";
$favAnimal = "pig";
$email = "john@smith.com";
$sport = "tennis";
$userDescription = "My name is $name, I am $age years old, I like $sport.";
if(allStringsSet($userDescription)){
echo $userDescription; //Or do something else
}
?>
您会注意到,我没有调用所有字符串,因为在我的应用程序中,并非所有字符串都会一直使用.我的应用程序还将从大约50个字符串中进行选择,而我需要能够检查是否有任何setset,而不会到处都是isset(); s.
我希望在声明$userDescription之前需要进行isset检查.如何检查一组未知的字符串以查看是否已设置?
解决方法:
使用带有自定义getter和setter的对象.
class CustomStrings()
{
protected $data;
public function __set($key, $value) {
$this->data[$key] = $value;
}
public function __get($key) {
if (isset($data[$key])) {
return $data[$key];
}
return false;
}
public function getDescription($description) {
// regex to find the words following : (or any other char)
// look for the variables, and do whatever handling you want if they're not found
// return whatever you want
// IF you don't want to do a regex, you can do the following
foreach ($this->data as $key => $value) {
$description = str_replace(":$key", $value, $description);
}
if (strpos(':', $description) !== FALSE) {
return $description;
}
return false; // or whatever error handling you want
}
}
$strings = new CustomStrings();
$strings->name = 'John';
$strings->age = 16;
$strings->sport = 'Football';
$description = $strings->getDescription("My name is :name, I am :age years old, I like :sport");
您将使用适当的键将所有变量存储在CustomStrings对象中,而不是写入$name,而是写入:name.
您只能在getDescription函数中执行一次isset处理.
因为我很懒,所以我没有写正则表达式.如果要在字符串中使用:,请将其替换为不需要的内容.
祝好运!
内容总结
以上是互联网集市为您收集整理的如何检查设置在php字符串中的被调用字符串?全部内容,希望文章能够帮你解决如何检查设置在php字符串中的被调用字符串?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。