问答详情
源自:2-4 正则表达式函数之preg_match与preg_match_all

PHP正则表达式preg_match输出问题

<?php
//$pattern=正则表达式
//$subject=匹配的目标数据

//preg_match,preg_match_all

$pattern='/[0-9]/';
$subject='we56sd8g7f54gf23121xcv234gjyt8';

$m1=$m2=array();
preg_match($pattern,$subject,$m1);
preg_match_all($pattern,$subject,$m2);


show($m1);
echo '<hr>';
show($m2);


function show ($val =null){
    if(empty($var)){
        echo 'null';
    }else if(is_array($var)||is_object($var)){
        //array object
        echo '<pre>';
        print_($var);
        echo '<pre>';
    }else{
        //string int float...
        echo $var;
    }
}
代码如上所示。。输出的结果为两个null,请问各位大神我的代码哪里错了?谢谢

(返回的代码应该是匹配到的两个只包含数字的数组)

提问者:无所畏惧小小小 2016-11-10 16:28

个回答

  • 君听
    2018-11-24 15:40:40

    show()这个函数传递的参数敲错了,function show ($val =null){,应该是$var ,你敲成$val

  • 异常代码
    2016-11-10 22:01:34

    数组参数写成值传递了,改成引用传递:
    preg_match($pattern,$subject,&$m1)