2016-03-02 53 views
-2

哪能如果else語句訪問功能的可調出身邊,你可以看到,當我宣佈opType == "Anand"不是代碼將運行,但我使用後男人看到導致如何訪問函數的變量,如果外面聲明PHP

if (!(empty($_POST)) & isset($_POST)) { 
    $opType = $_POST["opType"]; 
    if ($opType == "insertFuelEngineMap") { 
     //insert into fuel_engine_capacity_mapping setValuesForCreation(false); 
     $query = "INSERT INTO fuel_engine_capacity_mapping(cf_mapping_id,capacity_id) VALUES ('$cf_mapping_id','$capacity_id')"; 
     $loginResult = mysqli_query($link, $query); 
     if (mysqli_affected_rows($link) > 0) { 
      $userdata = array('status' => '200', 'msg' => "insertlol into fuel_engine_capacity_mapping successfully", 'mapping_id' => $link->insert_id); 
     } else { 
      $userdata = array('status' => '404', 'msg' => " Cant fuel_engine_capacity_mapping " . mysqli_error($link)); 
     } 
    } 
    if ($opType == "anand") { 

     function addition() { 
      $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
     } 

    } 
} 
addition(); 
echo $z; 
+0

請妥善格式化你的代碼。 –

+0

你不認爲聲明'if/esle'的函數基礎是一個壞方法。你應該在課堂上創建一個功能並根據你的要求調用它 – urfusion

+0

我實際上並不理解你在問什麼。 – RiggsFolly

回答

1

您可以返回值:

//Modify you function so it will return the result 
function addition() { 
    return $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
} 

然後:

//Catch variable and echo 
echo $z = addition(); 

希望這是你想要的,因爲你的問題不清楚。 此外,如果$opTypeanand不同,你將會出錯,因爲函數會被調用,但它不會存在。

最好在任何情況下聲明它,而不僅僅是如果$opType === 'anand'

1

聲明一個函數裏面和if語句,只有當設置了一些變量,然後調用它之外,如果語句,你不檢查該變量設置了一個災難計劃!

代碼的主體而不是定義函數和帶參數調用它,只返回計算值

<?php 
function addition($a, $b) { 
    return $a + $b; 
} 

$z = addition($x, $y); 
echo $z; 
相關問題