假设在PHP中使用UTF-8编码和strlen(),这个字符串的长度是4吗?
我只想知道strlen(),而不是其他函数
这是字符串:$1�2
我在自己的计算机上测试过,我已经验证了UTF-8编码,我得到的答案是6.
我在strlen手册或者我在UTF-8上读过的任何内容中都没有看到任何可以解释为什么上面的一些字符会少于一个的原因.
PS:这个问题和答案(4)来自我在Ebay上购买的ZCE的模拟测试.
PPS:请给我一个骨头并投票.我做了我的功课.提前感谢所有回复和投票.
PHP.net上针对array_replace()的函数签名表示数组将通过引用传入.以这种方式而不是按值进行的原因是什么(s)/好处,因为要获得预期的结果,必须将完成的数组返回给变量.为了清楚起见,我能够在手册中重现结果,因此这不是关于如何使用此功能的问题.
这是来自php.net的函数签名和示例.
资料来源:http://ca3.php.net/manual/en/function.array-replace.php
功能签名:
array array_replace ( array &$array , array &$array1 [, array &$... ] )
Run Code Online (Sandbox Code Playgroud)
示例代码:
$base = array("orange", "banana", "apple", "raspberry");
$replacements = array(0 => "pineapple", 4 => "cherry");
$replacements2 = array(0 => "grape");
$basket = array_replace($base, $replacements, $replacements2);
print_r($basket);
Run Code Online (Sandbox Code Playgroud)
上面的例子将输出:
Array
(
[0] => grape
[1] => banana
[2] => apple
[3] => raspberry
[4] => cherry
)
Run Code Online (Sandbox Code Playgroud) 我一直在这个网站和网上阅读一些关于非捕获组的文章(例如http://www.regular-expressions.info/brackets.html和http://www.asiteaboutnothing.net/regexp/正则表达式,disambiguation.html,什么的"?^?"正则表达式的意思是,什么是一个非捕获组什么是一个问号后面跟一个冒号(?:)是什么意思?)
我很清楚(?:foo)的含义.我不清楚的是(?= foo).(?= foo)也总是非捕获组,还是依赖?