一个PHP的String类代码

使用方法:


代码如下:

$s ='中国';
$os = new String( $s );
echo $os->decode('gbk') ,'';
echo $os->decode('gbk')->encode('md5'),'';

代码


代码如下:

class String extends stdClass
{
private $_val ='';
public function __construct( $str ='' )
{
$this->_val = $str;
}
public function __toString()
{
return $this->_val;
}
public function encode( $coder )
{
$coder ='encode_' . $coder;
if( method_exists( $this, $coder ) )
{
return $this->$coder();
}else{
return $this;
}
}
public function decode( $coder )
{
$coder ='decode_' . $coder;
if( method_exists( $this, $coder ) )
{
return $this->$coder();
}else{
return $this;
}
}
private function encode_md5()
{
return new String( md5( $this->_val ) );
}
private function decode_gbk()
{
return new String( iconv('GBK','UTF-8', $this->_val ) );
}
}

(0)

相关推荐

  • 一个PHP的String类代码

    使用方法: 复制代码 代码如下: $s ='中国'; $os = new String( $s ); echo $os->decode('gbk') ,''; echo $os->decode('gbk')->encode('md5'),''; 代码 复制代码 代码如下: class String extends stdClass { private $_val =''; public function __construct( $str ='' ) { $this->_val =

  • c++编写String类代码实例

    本文实例为大家分享了c++编写String类的具体代码,供大家参考,具体内容如下 class String { public: String(const char* = nullptr); //普通构造函数 String(const String& other); //拷贝构造函数 ~String(void); //析构函数 String& operator = (const String& other); //赋值函数 private: char* m_data; }; //普通

  • 封装一个PDO数据库操作类代码

    复制代码 代码如下: <?php /** * 数据库PDO操作 */ class MysqlPdo { public static $PDOStatement = null; /** * 数据库的连接参数配置 * @var array * @access public */ public static $config = array(); /** * 是否使用永久连接 * @var bool * @access public */ public static $pconnect = false;

  • 发一个ASP的ADODB类代码

    反正我现在用这个做了很多站,自己觉得还是满有用的,所以拿出来和大家分享一下.支持三种数据库连接:MSSQL2000,MSSQL2005,ACCESS 三种方法: select_table(sql) 表查询,返回TRUE或FALSE 当SQL语句出错,或空记录时返回FALSE,否则TRUE update_table(SQL) 表更新,包括update,delete 成功执行返回TRUE,否则返回FALSE,updated为执行后影响记录行数. insert_table(sql,table,id_c

  • 详解C++中String类模拟实现以及深拷贝浅拷贝

    详解C++中String类模拟实现以及深拷贝浅拷贝 在C语言中/C++中,字符串是一个应用很广泛的类型,也是很基础的类型,C语言并没有直接处理字符串的操作而是采用字符指针和字符串数组进行操作,而在C++中标准库为我们封装了一个字符串的类供我们使用,使用需要#inlcude <string>头文件.我们也可以自己模拟实现一个简单的String类. 在模拟实现String类的过程中,不可避免的会遇到深拷贝浅拷贝的问题,下面就深拷贝浅拷贝做一个简介.所谓深拷贝浅拷贝,简单来说就是浅拷贝只是简单的将值

  • Java的string类为什么是不可变的

    答案一: 最流行的Java面试题之一就是:什么是不可变对象(immutable object),不可变对象有什么好处,在什么情况下应该用,或者更具体一些,Java的String类为什么要设成immutable类型?不可变对象,顾名思义就是创建后不可以改变的对象,典型的例子就是Java中的String类. 复制代码 代码如下: String s = "ABC";  s.toLowerCase(); 如上s.toLowerCase()并没有改变"ABC"的值,而是创建了

  • JAVA基础类库之String类,StringBuffer类和StringBuilder类

    目录 引言 String类 String类构造方法 String常用方法: 简单介绍的方法 详细介绍的方法 StringBuffer/StringBuilder常用方法 StringBuffer类构造方法 StringBuffer常用方法: 总结 引言 字符串就是一连串的字符序列,Java提供了String.StringBuffer和StringBuilder三个类来封装对字符串,并提供了系列方法来操作字符串对象. String类是不可变类的: StringBuffer对象则代表一个字符序列可变

  • C++实现String类的方法详解

    目录 前言 string模拟实现 string简单实现 string完整实现 完整代码 前言 在C语言中,没有专门用来表示字符串的类型.C语言的字符串是一系列以’\0’为结尾的字符的集合.虽然C语言为这样的字符串提供了一系列的库函数如strcpy, strcmp等等,但这些函数与字符串这个类型是分开的,这不太符合C++中面试对象的思想,所以在C++中封装了一个string类,来帮助我们操作字符串.string该如何使用,我这里就不做赘述了,大家可以去看看官方文档呀 string - C++ Re

  • C++深浅拷贝及简易string类实现方式

    目录 三种拷贝方式 浅拷贝 深拷贝 写时拷贝 VS与GCC中的拷贝方式 Windows VS2022 Linux GCC 简易string类 传统版写法的string类 现代版写法string类 总结 三种拷贝方式 浅拷贝 对于自定义的string类,如果不显式定义拷贝构造函数,编译器会默认生成拷贝构造函数,此时的拷贝方式是浅拷贝,两个对象会公用一块儿内存,析构时同一空间被释放两次,会导致程序崩溃. 赋值运算符重载也会产生同样的问题,同时,由于被赋值对象原来有空间,浅拷贝还会导致旧的空间无法找到

  • 分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容

    问题的产生 在写JS的过程中,为了调试我们常常会写很多 console.log.console.info.console.group.console.warn.console.error代码来查看JS的运行情况,但发布时又因为IE不支持console,又要去掉这些代码,一不小心就会出错. 本文分享自己昨晚写的一个console类来试图解决这一问题.当然,更好的做法是把测试代码分开写,那样就不会有这个问题. 解决思路 如何解决IE下不兼容的问题呢,那就是我们自己定义一个console类来覆盖浏览器

随机推荐