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.1هزار بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط IMANAZADI (72 امتیاز)
0 امتیاز
1 پاسخ 7.4هزار بازدید
0 امتیاز
1 پاسخ 637 بازدید
0 امتیاز
1 پاسخ 1.1هزار بازدید
0 امتیاز
0 پاسخ 647 بازدید
0 امتیاز
0 پاسخ 630 بازدید
0 امتیاز
0 پاسخ 468 بازدید
+1 امتیاز
2 پاسخ 436 بازدید
...