慕课网吧 关注:28,926贴子:27,537
  • 16回复贴,共1

PHP 7.0 升级备注......

只看楼主收藏回复

PHP 7.0.0 beta1 发布了,在带来了引人注目的性能提升的同时,也带来了不少语言特性方面的改变。以下由LCTT翻译自对官方的升级备注,虽然目前还不是正式发布版,不过想必距离正式发布的特性已经差别不大了。(本文会持续追踪更新)

✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
每段青春都会苍老、
      但我希望记忆里的你一直都好


回复
来自Android客户端1楼2015-08-05 19:11


    ✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
    每段青春都会苍老、
          但我希望记忆里的你一直都好


    月老
    每对新人结婚成功的那一刻,送礼最多的吧友可以获得本次求婚的“月老”称号和成就,去领取
    活动截止:2100-01-01
    去徽章馆》
    星座王
    点亮12星座印记,去领取
    活动截止:2100-01-01
    去徽章馆》
    回复
    来自Android客户端2楼2015-08-05 19:12
      一、 向后不兼容的变化
      语言变化
      1.变量处理的变化
      a.间接变量、属性和方法引用现在以从左到右的语义进行解释。一些例子:

      要恢复以前的行为,需要显式地加大括号:

      b.全局关键字现在只接受简单变量。像以前的:

      现在要求如下写法:

      c.变量或函数调用的前后加上括号不再有任何影响。例如下列代码,函数调用结果以引用的方式传给一个函数:

      现在无论是否使用括号,都会抛出一个严格标准错误。以前在第二种调用方式下不会有提示。
      d.数组元素或对象属性自动安装引用顺序创建,现在的结果顺序将不同。例如:

      现在结果是 ["a" => 1, "b" => 1],而以前的结果是 ["b" => 1, "a" => 1]。






      ✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
      每段青春都会苍老、
            但我希望记忆里的你一直都好


      月老
      每对新人结婚成功的那一刻,送礼最多的吧友可以获得本次求婚的“月老”称号和成就,去领取
      活动截止:2100-01-01
      去徽章馆》
      星座王
      点亮12星座印记,去领取
      活动截止:2100-01-01
      去徽章馆》
      回复
      来自Android客户端3楼2015-08-05 19:13
        相关的 RFC:
        https://wiki.php.net/rfc/uniform_variable_syntax
        https://wiki.php.net/rfc/abstract_syntax_tree
        «

        ✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
        每段青春都会苍老、
              但我希望记忆里的你一直都好


        月老
        每对新人结婚成功的那一刻,送礼最多的吧友可以获得本次求婚的“月老”称号和成就,去领取
        活动截止:2100-01-01
        去徽章馆》
        星座王
        点亮12星座印记,去领取
        活动截止:2100-01-01
        去徽章馆》
        回复
        来自Android客户端4楼2015-08-05 19:13
          2.list()的变化
          a.list() 不再以反序赋值,例如:

          现在结果是 $array == [1, 2, 3] ,而不是 [3, 2, 1]。注意仅赋值顺序变化了,而赋值仍然一致(LCTT 译注:即以前的 list()行为是从后面的变量开始逐一赋值,这样对与上述用法就会产生 [3,2,1] 这样的结果了。)。例如,类似如下的常规用法:

          仍然保持当前的行为。
          b.不再允许对空的 list() 赋值。如下全是无效的:

          c.list() 不再支持对字符串的拆分(以前也只在某些情况下支持)。如下代码:

          现在的结果是: $x == null 和 $y == null (没有提示),而以前的结果是: $x == "x" 和 $y == "y" 。此外, list() 现在总是可以处理实现了 ArrayAccess 的对象,例如:







          ✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
          每段青春都会苍老、
                但我希望记忆里的你一直都好


          月老
          每对新人结婚成功的那一刻,送礼最多的吧友可以获得本次求婚的“月老”称号和成就,去领取
          活动截止:2100-01-01
          去徽章馆》
          星座王
          点亮12星座印记,去领取
          活动截止:2100-01-01
          去徽章馆》
          回复
          来自Android客户端5楼2015-08-05 19:15
            相关 RFC:
            https://wiki.php.net/rfc/abstract_syntax_tree#changes_to_list
            https://wiki.php.net/rfc/fix_list_behavior_inconsistency

            ✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
            每段青春都会苍老、
                  但我希望记忆里的你一直都好


            月老
            每对新人结婚成功的那一刻,送礼最多的吧友可以获得本次求婚的“月老”称号和成就,去领取
            活动截止:2100-01-01
            去徽章馆》
            星座王
            点亮12星座印记,去领取
            活动截止:2100-01-01
            去徽章馆》
            回复
            来自Android客户端6楼2015-08-05 19:15
              3.参数处理的变化
              a.不能定义两个同名的函数参数。例如,下面的方法将会触发编译时错误:

              如上的代码应该修改使用不同的参数名,如:

              b.func_get_arg() 和 func_get_args() 函数不再返回传递给参数的原始值,而是返回其当前值(也许会被修改)。例如:

              将会打印 "2" 而不是 "1"。代码应该改成仅在调用 func_get_arg(s) 后进行修改操作。

              或者应该避免修改参数:

              c.类似的,异常回溯也不再显示传递给函数的原始值,而是修改后的值。例如:

              现在堆栈跟踪的结果是:

              而以前是:

              这并不会影响到你的代码的运行时行为,值得注意的是在调试时会有所不同。
              同样的限制也会影响到 debug_backtrace() 及其它检查函数参数的函数。
              相关 RFC:https://wiki.php.net/phpng

              ✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
              每段青春都会苍老、
                    但我希望记忆里的你一直都好


              月老
              每对新人结婚成功的那一刻,送礼最多的吧友可以获得本次求婚的“月老”称号和成就,去领取
              活动截止:2100-01-01
              去徽章馆》
              星座王
              点亮12星座印记,去领取
              活动截止:2100-01-01
              去徽章馆》
              回复
              来自Android客户端8楼2015-08-05 19:15
                4.整数处理的变化
                a.无效的八进制表示(包含大于7的数字)现在会产生编译错误。例如,下列代码不再有效:

                以前,无效的数字(以及无效数字后的任何数字)会简单的忽略。以前如上 $i 的值是 7,因为后两位数字会被悄悄丢弃。
                b.二进制以负数镜像位移现在会抛出一个算术错误:

                c.向左位移的位数超出了整型宽度时,结果总是 0。

                以前上述代码的结果依赖于所用的 CPU 架构。例如,在 x86(包括 x86-64) 上结果是 int(1),因为其位移操作数在范围内。
                d.类似的,向右位移的位数超出了整型宽度时,其结果总是 0 或 -1 (依赖于符号):

                相关 RFC:https://wiki.php.net/rfc/integer_semantics

                ✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
                每段青春都会苍老、
                      但我希望记忆里的你一直都好


                月老
                每对新人结婚成功的那一刻,送礼最多的吧友可以获得本次求婚的“月老”称号和成就,去领取
                活动截止:2100-01-01
                去徽章馆》
                星座王
                点亮12星座印记,去领取
                活动截止:2100-01-01
                去徽章馆》
                回复
                来自Android客户端9楼2015-08-05 19:16
                  5.字符串处理的变化
                  a.包含十六进制数字的字符串不会再被当做数字,也不会被特殊处理。参见例子中的新行为:

                  filter_var() 可以用来检查一个字符串是否包含了十六进制数字,或这个字符串是否能转换为整数:

                  b.由于给双引号字符串和 HERE 文档增加了 Unicode 码点转义格式(Unicode Codepoint Escape Syntax), 所以带有无效序列的 "\u{" 现在会造成错误:

                  要避免这种情况,需要转义开头的反斜杠:

                  不过,不跟随 { 的 "\u" 不受影响。如下代码不会生成错误,和前面的一样工作:

                  相关 RFC:
                  https://wiki.php.net/rfc/remove_hex_support_in_numeric_strings
                  https://wiki.php.net/rfc/unicode_escape

                  ✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
                  每段青春都会苍老、
                        但我希望记忆里的你一直都好


                  月老
                  每对新人结婚成功的那一刻,送礼最多的吧友可以获得本次求婚的“月老”称号和成就,去领取
                  活动截止:2100-01-01
                  去徽章馆》
                  星座王
                  点亮12星座印记,去领取
                  活动截止:2100-01-01
                  去徽章馆》
                  回复
                  来自Android客户端10楼2015-08-05 19:16
                    6.错误处理的变化
                    a.现在有两个异常类: Exception 和 Error 。这两个类都实现了一个新接口: Throwable 。在异常处理代码中的类型指示也许需要修改来处理这种情况。
                    b.一些致命错误和可恢复的致命错误现在改为抛出一个 Error 。由于 Error 是一个独立于 Exception 的类,这些异常不会被已有的 try/catch 块捕获。
                    可恢复的致命错误被转换为一个异常,所以它们不能在错误处理里面悄悄的忽略。部分情况下,类型指示失败不再能忽略。
                    d.解析错误现在会生成一个 Error 扩展的 ParseError 。除了以前的基于返回值 / errorgetlast() 的处理,对某些可能无效的代码的 eval() 的错误处理应该改为捕获 ParseError 。
                    f.内部类的构造函数在失败时总是会抛出一个异常。以前一些构造函数会返回 NULL 或一个不可用的对象。
                    e.一些 E_STRICT 提示的错误级别改变了。
                    相关 RFC:
                    https://wiki.php.net/rfc/engine_exceptions_for_php7
                    https://wiki.php.net/rfc/throwable-interface
                    https://wiki.php.net/rfc/internal_constructor_behaviour
                    https://wiki.php.net/rfc/reclassify_e_strict

                    ✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
                    每段青春都会苍老、
                          但我希望记忆里的你一直都好


                    月老
                    每对新人结婚成功的那一刻,送礼最多的吧友可以获得本次求婚的“月老”称号和成就,去领取
                    活动截止:2100-01-01
                    去徽章馆》
                    星座王
                    点亮12星座印记,去领取
                    活动截止:2100-01-01
                    去徽章馆》
                    回复
                    来自Android客户端11楼2015-08-05 19:17
                      7.其它的语言变化
                      a.静态调用一个不兼容的 $this 上下文的非静态调用的做法不再支持。这种情况下,$this 是没有定义的,但是对它的调用是允许的,并带有一个废弃提示。例子:

                      注意,这仅出现在来自不兼容上下文的调用上。如果类 B 扩展自类 A ,调用会被允许,没有任何提示。
                      b.不能使用下列类名、接口名和特殊名(大小写敏感):

                      这用于 class/interface/trait 声明、 class_alias() 和 use 语句中。
                      此外,下列类名、接口名和特殊名保留做将来使用,但是使用时尚不会抛出错误:

                      c.yield 语句结构当用在一个表达式上下文时,不再要求括号。它现在是一个优先级在 “print” 和 “=>” 之间的右结合操作符。在某些情况下这会导致不同的行为,例如:

                      这种情况可以通过增加括号来解决。
                      d.移除了 ASP (<%) 和 script (<script language=php>) 标签。
                      e.不支持以引用的方式对 new 的结果赋值。
                      f.不支持对一个来自非兼容的 $this 上下文的非静态方法的域内调用。细节参见:https://wiki.php.net/rfc/incompat_ctx
                      g.不支持 ini 文件中的 # 风格的备注。使用 ; 风格的备注替代。
                      i.$HTTP_RAW_POST_DATA 不再可用,使用 php://input 流替代。
                      相关 RFC:
                      https://wiki.php.net/rfc/remove_alternative_php_tags
                      https://wiki.php.net/rfc/incompat_ctx
                      «»

                      ✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
                      每段青春都会苍老、
                            但我希望记忆里的你一直都好


                      月老
                      每对新人结婚成功的那一刻,送礼最多的吧友可以获得本次求婚的“月老”称号和成就,去领取
                      活动截止:2100-01-01
                      去徽章馆》
                      星座王
                      点亮12星座印记,去领取
                      活动截止:2100-01-01
                      去徽章馆》
                      回复
                      来自Android客户端12楼2015-08-05 19:17
                        标准库的变化
                        1.call_user_method() 和 call_user_method_array() 不再存在。
                        2.在一个输出缓冲区被创建在输出缓冲处理器里时, ob_start() 不再发出 E_ERROR,而是 E_RECOVERABLE_ERROR。
                        3.改进的 zend_qsort (使用 hybrid 排序算法)性能更好,并改名为 zend_sort。
                        4.增加静态排序算法 zend_insert_sort。
                        5.移除 fpm-fcgi 的 dl() 函数。
                        6.setcookie() 如果 cookie 名为空会触发一个 WARNING ,而不是发出一个空的 set-cookie 头。

                        ✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
                        每段青春都会苍老、
                              但我希望记忆里的你一直都好


                        月老
                        每对新人结婚成功的那一刻,送礼最多的吧友可以获得本次求婚的“月老”称号和成就,去领取
                        活动截止:2100-01-01
                        去徽章馆》
                        星座王
                        点亮12星座印记,去领取
                        活动截止:2100-01-01
                        去徽章馆》
                        回复
                        来自Android客户端13楼2015-08-05 19:17
                          其他
                          1.Curl:去除对禁用 CURLOPT_SAFE_UPLOAD 选项的支持。所有的 curl 文件上载必须使用 curl_file / CURLFile API。
                          2.Date:从 mktime() 和 gmmktime() 中移除 $is_dst 参数。
                          3.DBA:如果键也没有出现在 inifile 处理器中,dba_delete() 现在会返回 false。
                          4.GMP:现在要求 libgmp 版本 4.2 或更新。gmp_setbit() 和 gmp_clrbit() 对于负指标返回 FALSE,和其它的 GMP 函数一致。
                          5.Intl:移除废弃的别名 datefmt_set_timezone_id() 和 IntlDateFormatter::setTimeZoneID()。替代使用 datefmt_set_timezone() 和 IntlDateFormatter::setTimeZone()。
                          6.libxml:增加 LIBXML_BIGLINES 解析器选项。从 libxml 2.9.0 开始可用,并增加了在错误报告中行号大于 16 位的支持。
                          7.Mcrypt:
                          移除等同于 mcrypt_generic_deinit() 的废弃别名 mcrypt_generic_end()。
                          移除废弃的 mcrypt_ecb()、 mcrypt_cbc()、 mcrypt_cfb() 和 mcrypt_ofb() 函数,它们等同于使用 MCRYPT_MODE_* 标志的 mcrypt_encrypt() 和 mcrypt_decrypt() 。
                          8.Session:
                          session_start()以数组方式接受所有的INI设置。例如,['cache_limiter'=>'private']会设置session.cache_limiter=private 。也支持 'read_and_close' 以在读取数据后立即关闭会话数据。
                          会话保存处理器接受使用validate_sid()和update_timestamp()来校验会话 ID 是否存在、更新会话时间戳。对旧式的用户定义的会话保存处理器继续兼容。
                          增加了SessionUpdateTimestampHandlerInterface 。validateSid()、updateTimestamp() 定义在接口里面。
                          session.lazy_write(默认是 On) 的 INI 设置支持仅在会话数据更新时写入。
                          9.Opcache:移除 opcache.load_comments 配置语句。现在文件内备注载入无成本,并且总是启用的。
                          10.OpenSSL:
                          移除 "rsa_key_size" SSL 上下文选项,按给出的协商的加密算法自动设置适当的大小。
                          移除 "CN_match" 和 "SNI_server_name" SSL 上下文选项。使用自动侦测或 "peer_name" 选项替代。
                          10.PCRE:移除对 /e (PREG_REPLACE_EVAL) 修饰符的支持,使用 preg_replace_callback() 替代。
                          11.PDO_pgsql:移除 PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT 属性,等同于 ATTR_EMULATE_PREPARES。
                          12.Standard:
                          移除 setlocale() 中的字符串类目支持。使用 LC_* 常量替代。 instead.
                          移除 set_magic_quotes_runtime() 及其别名 magic_quotes_runtime()。
                          13.JSON:
                          拒绝 json_decode 中的 RFC 7159 不兼容数字格式 - 顶层 (07, 0xff, .1, -.1) 和所有层的 ([1.], [1.e1])。
                          用一个参数调用 json_decode 等价于用空的 PHP 字符串或值调用,转换为空字符串(NULL, FALSE)的结果是 JSON 格式错误。
                          14.Stream:移除 set_socket_blocking() ,等同于其别名 stream_set_blocking()。
                          15.XSL:移除 xsl.security_prefs ini 选项,使用 XsltProcessor::setSecurityPrefs() 替代。


                          ✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
                          每段青春都会苍老、
                                但我希望记忆里的你一直都好


                          月老
                          每对新人结婚成功的那一刻,送礼最多的吧友可以获得本次求婚的“月老”称号和成就,去领取
                          活动截止:2100-01-01
                          去徽章馆》
                          星座王
                          点亮12星座印记,去领取
                          活动截止:2100-01-01
                          去徽章馆》
                          回复
                          来自Android客户端14楼2015-08-05 19:18
                            二、新功能
                            Core
                            增加了组式 use 声明。 (RFC:https://wiki.php.net/rfc/group_use_declarations)
                            增加了 null 合并操作符 (??)。 (RFC:https://wiki.php.net/rfc/isset_ternary)
                            在 64 位架构上支持长度 >= 231 字节的字符串。
                            增加了 Closure::call() 方法(仅工作在用户侧的类)。
                            在双引号字符串和 here 文档中增加了 \u{xxxxxx} Unicode 码点转义格式。
                            define() 现在支持数组作为常量值,修复了一个当 define() 还不支持数组常量值时的疏忽。
                            增加了比较操作符 (<=>),即太空船操作符。 (RFC:https://wiki.php.net/rfc/combined-comparison-operator)
                            为委托生成器添加了类似协程的 yield from 操作符。 (RFC:https://wiki.php.net/rfc/generator-delegation)
                            保留的关键字现在可以用在几种新的上下文中。 (RFC:https://wiki.php.net/rfc/context_sensitive_lexer)
                            增加了标量类型的声明支持,并可以使用 declare(strict_types=1) 的声明严格模式。
                            (RFC:https://wiki.php.net/rfc/scalar_type_hints_v5)
                            增加了对加密级安全的用户侧的随机数发生器的支持。 (RFC:https://wiki.php.net/rfc/easy_userland_csprng)
                            Opcache
                            增加了基于文件的二级 opcode 缓存(实验性——默认禁用)。要启用它,PHP 需要使用 --enable-opcache-file 配置和构建,然后 opcache.file_cache=<DIR> 配置指令就可以设置在 php.ini 中。二级缓存也许可以提升服务器重启或 SHM 重置时的性能。此外,也可以设置opcache.file_cache_only=1来使用文件缓存而根本不用SHM(也许对于共享主机有用);设置 opcache.file_cache_consistency_checks=0来禁用文件缓存一致性检查,以加速载入过程,有安全风险。
                            OpenSSL
                            当用 OpenSSL 1.0.2 及更新构建时,增加了 "alpn_protocols" SSL 上下文选项来允许加密的客户端/服务器流使用 ALPN TLS 扩展去协商替代的协议。协商后的协议信息可以通过 stream_get_meta_data() 输出访问。
                            Reflection
                            增加了一个 ReflectionGenerator 类(yield from Traces,当前文件/行等等)。
                            增加了一个 ReflectionType 类来更好的支持新的返回类型和标量类型声明功能。新的 ReflectionParameter::getType() 和 ReflectionFunctionAbstract::getReturnType() 方法都返回一个 ReflectionType 实例。
                            Stream
                            添加了新的仅用于 Windows 的流上下文选项以允许阻塞管道读取。要启用该功能,当创建流上下文时,传递 array("pipe" => array("blocking" => true)) 。要注意的是,该选项会导致管道缓冲区的死锁,然而它在几个命令行场景中有用。

                            ✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
                            每段青春都会苍老、
                                  但我希望记忆里的你一直都好


                            月老
                            每对新人结婚成功的那一刻,送礼最多的吧友可以获得本次求婚的“月老”称号和成就,去领取
                            活动截止:2100-01-01
                            去徽章馆》
                            星座王
                            点亮12星座印记,去领取
                            活动截止:2100-01-01
                            去徽章馆》
                            回复
                            来自Android客户端15楼2015-08-05 19:18
                              三、SAPI 模块的变化
                              FPM
                              修复错误 #65933 (不能设置超过1024字节的配置行)。
                              Listen = port 现在监听在所有地址上(IPv6 和 IPv4 映射的)。

                              ✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
                              每段青春都会苍老、
                                    但我希望记忆里的你一直都好


                              月老
                              每对新人结婚成功的那一刻,送礼最多的吧友可以获得本次求婚的“月老”称号和成就,去领取
                              活动截止:2100-01-01
                              去徽章馆》
                              星座王
                              点亮12星座印记,去领取
                              活动截止:2100-01-01
                              去徽章馆》
                              回复
                              来自Android客户端16楼2015-08-05 19:19
                                五、函数的变化
                                parse_ini_file():
                                parse_ini_string():
                                添加了扫描模式 INISCANNERTYPED 来得到 yield 类型的 .ini 值。
                                unserialize():
                                给 unserialize 函数添加了第二个参数 (RFC:https://wiki.php.net/rfc/secure_unserialize)来指定可接受的类: unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]]);
                                proc_open():
                                可以被 proc_open() 使用的最大管道数以前被硬编码地限制为 16。现在去除了这个限制,只受限于 PHP 的可用内存大小。
                                新添加的仅用于 Windows 的配置选项 "blocking_pipes" 可以用于强制阻塞对子进程管道的读取。这可以用于几种命令行应用场景,但是它会导致死锁。此外,这与新的流的管道上下文选项相关。
                                array_column():
                                该函数现在支持把对象数组当做二维数组。只有公开属性会被处理,对象里面使用 __get() 的动态属性必须也实现 __isset() 才行。
                                stream_context_create():
                                现在可以接受一个仅 Windows 可用的配置 array("pipe" => array("blocking" => <boolean>)) 来强制阻塞管道读取。该选项应该小心使用,该平台有可能导致管道缓冲区的死锁。

                                ✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
                                每段青春都会苍老、
                                      但我希望记忆里的你一直都好


                                月老
                                每对新人结婚成功的那一刻,送礼最多的吧友可以获得本次求婚的“月老”称号和成就,去领取
                                活动截止:2100-01-01
                                去徽章馆》
                                星座王
                                点亮12星座印记,去领取
                                活动截止:2100-01-01
                                去徽章馆》
                                回复
                                来自Android客户端18楼2015-08-05 19:19
                                  五、新函数
                                  GMP:添加了 gmp_random_seed()。
                                  PCRE:添加了preg_replace_callback_array 函数。 (RFC:https://wiki.php.net/rfc/preg_replace_callback_array)
                                  Standard:添加了整数除法 intdiv() 函数。添加了重置错误状态的error_clear_last()函数。
                                  Zlib:添加了deflate_init()、deflate_add()、inflate_init()、inflate_add() 函数来运行递增和流的压缩/解压。

                                  ✎﹏๓₯㎕ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้
                                  每段青春都会苍老、
                                        但我希望记忆里的你一直都好


                                  月老
                                  每对新人结婚成功的那一刻,送礼最多的吧友可以获得本次求婚的“月老”称号和成就,去领取
                                  活动截止:2100-01-01
                                  去徽章馆》
                                  星座王
                                  点亮12星座印记,去领取
                                  活动截止:2100-01-01
                                  去徽章馆》
                                  回复
                                  来自Android客户端19楼2015-08-05 19:20