求大神赐予我一段php代码

废柴大叔 发布于 2013/11/09 16:28
阅读 601
收藏 1
PHP
 定义一个集合类 url_array
写一个方法 方法传进来一个参数
如果集合 url_array里有 就返回false

没有就增加到集合 url_array里 并返回ture; 

$urlarr=array();
function isContain($thisurl){
	if(in_array($thisurl , $urlarr) )
	 {
	  echo $thisurl."有了";
	 }else{
		echo 'insert';
			array_push($urlarr,$thisurl);
			//$urlarr[]=$thisurl;
	}

print_r($urlarr); }

这样写为什么不对呢

报了下面的异常

Warning: in_array() [function.in-array]: Wrong datatype for second argument 
Warning: array_push() [function.array-push]: First argument should be an array 


各位,求代码啊,我真不知道如何改了。。。


我是做Java的


搞定了 感谢各位

$urlarr=array();
function isContain($thisurl){
	global $urlarr;
	if(in_array($thisurl ,  $urlarr) )
	 {
	  echo $thisurl."有了";
	 }else{
		echo 'insert';
			array_push( $urlarr,$thisurl);
			//$urlarr[]=$thisurl;
	}
	
	print_r($urlarr);
}

加载中
0
吕秀才
吕秀才
array_*系列函数会有你想要的!
0
leo108
leo108
in_array()
0
Ruchee
Ruchee

in_array && array_push

0
dreamhack
dreamhack

引用来自“Ruchee”的答案

in_array && array_push

这个应该可以了吧
0
leo108
leo108
全局变量和局部变量,楼主好好补基础吧
jingdor
jingdor
貌似他是从js 转过来的
0
南湖船老大
南湖船老大
作用域。。。我也觉得你以前是写JS的。如果不嫌丑,可以用global
0
诡道
诡道

引用来自“leo108”的答案

全局变量和局部变量,楼主好好补基础吧
正解。
0
诡道
诡道
$urlarr只在函数外定义是没用的。要么传递$urlarr参数进去函数稀里哗啦处理一下再扔出来接住,要么对$urlarr进行引用函数里是什么函数外也是什么,要么定义$urlarr为全局变量。
诡道
诡道
回复 @ij2ee.com : 你这样是定义全局变量了,也可以,我是不喜欢这样。
废柴大叔
废柴大叔
那我现在这样写对不 就是后面的代码
0
诡道
诡道
function isContain($thisurl, &$urlarr)
{
  if(in_array($thisurl, $urlarr))
  {
    return false;
  }
  else
  {
    $urlarr[] = $thisurl;
    return true;
  }
}
$urlarr = array();
echo isContain("www.baidu.com", $urlarr);
print_r($urlarr);
废柴大叔
废柴大叔
有道理
0
宇皇
宇皇
你这是把PHP当JS来写么
废柴大叔
废柴大叔
唉 能给代码的哥们不多 就说了 局部变量啥的 我只能按照js写了 要不哥们也写一段??
返回顶部
顶部