[英]PHP echo -> string as 0?
我如何避免以下情况:
$_SESSION['myVar']=preg_match("[^a-zA-Z]",'',$_SESSION['myVar']);
echo $_SESSION['myVar'];
显示
0
而是显示/输出var内容? preg_match给出了混合类型,但这不应该是问题...
为什么字符串本身的值不能用echo寻址(通过共同映射其内容就可以了 )?
我以前有
$_SESSION['myVar']=ereg_replace("[^a-zA-Z]",'',$_SESSION['myVar']);
蚂蚁的输出ereg_replace被正确显示的变量的内容。
PHP中的PCRE需要定界符[docs],而您可能需要preg_replace
[docs] :
preg_replace("/[^a-zA-Z]/",'',$_SESSION['myVar']);
假设您有preg_replace
,即使这样,方括号( [...]
)也将被解释为定界符,因此引擎将按字面意义尝试在字符串开头匹配a-zA-Z
,并且不会将构造方法解释为字符类。
preg_match
返回一个整数,而不是混合整数: http : //php.net/manual/zh/function.preg-match.php
使用matchs参数获取匹配项。
问题是preg_match返回一个布尔值,如果模式匹配则返回1,否则返回0。 preg_match只是匹配出现的内容,不会替换它们。 这是使用preg_match的方法:
$matched = array();
preg_match("/[^a-zA-Z]/", $_SESSION["myVar"], $matches);
print_r($matches); // All matches are in the array.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.