0 امتیاز
قبل در برنامه نویسی توسط (72 امتیاز)
ویرایش شده قبل توسط

با سلام
مگر تابع isset چک نمیکنه که آیا یک متغییر وجود دارد یا نه
پس چرا کد زیر خطا میگیره ؟؟؟!!!
میخواهیم زمانیکه یک پارامتر بیشتر ست نشده بود قسمت دوم تابع اعمال بشه

خطا : Warning: Missing argument 2 for show()
 

function show($page,$par)
{
  if (isset($page) && isset($par))
  {
   
  $val=$page."-".$par;
 
  echo $val;
  exit();
  }
  elseif(isset($page))
  {  

  echo $page;
  exit();
  
   }
}


show("aa");

 

1 پاسخ

+2 امتیاز
قبل توسط (314 امتیاز)

دوست عزیز این خطای شما از تابع isset نیست بلکه قبل از آن است یعنی لود کردن تابع show.

وقتی در هنگام لود تابع شما دو متغییر به آن دادی ولی در پایین تابع را با یک متغییر لود کردید که این خود خطا به وجود میاره.

من در پایین با تابع func_get_args کد شما رو اصلاح کردم و مقداری خلاصه ترش کردم.

<?php

function show(){
    
    $args=func_get_args();
    
    if (isset($args[0]) && isset($args[1])){
        
        echo $args[0]."-".$args[1].'<br />';
        
    }elseif(isset($args[0])){  
    
        echo $args[0].'<br />';
        
    }else{
        
        echo "not set";
        
    }
}
 
 
show("aa");

show("aa","bb");

?>

 

سوالات مشابه

0 امتیاز
1 پاسخ 1.5هزار بازدید
0 امتیاز
2 پاسخ 1.0هزار بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط IMANAZADI (72 امتیاز)
0 امتیاز
1 پاسخ 7.3هزار بازدید
0 امتیاز
1 پاسخ 601 بازدید
0 امتیاز
1 پاسخ 1.0هزار بازدید
0 امتیاز
0 پاسخ 620 بازدید
0 امتیاز
0 پاسخ 615 بازدید
0 امتیاز
0 پاسخ 447 بازدید
+1 امتیاز
2 پاسخ 410 بازدید
...