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 پاسخ 638 بازدید
0 امتیاز
1 پاسخ 1.1هزار بازدید
0 امتیاز
0 پاسخ 648 بازدید
0 امتیاز
0 پاسخ 631 بازدید
0 امتیاز
0 پاسخ 471 بازدید
+1 امتیاز
2 پاسخ 437 بازدید
...