2016-02-21 73 views
1

我爲這所學校做了這項工作,但是我無法進一步探索。 它不會得到我想要的結果。 它必須是sqrt和pow函數的解決方案。 你能告訴我我做錯了什麼嗎?Echo sqrt和pow

body { 
    font-family: Cambria; 
    background-color: #9A9FFF; 
    font-size: 20px; 
} 
table { 
    border-collapse: collapse; 
} 

PHP:

<?php 
    // Declareren 
    $getal=5 ; 
    $hoeveelKwadraad=2 ; 

    // Functies 
    function kwadraad($hoeveelKwadraad) { 
     echo ''. pow($getal, $hoeveelKwadraad); 
    } 
    function wortel() { echo ''. sqrt($getal); } 
    if (is_numeric($getal)) { 
     echo 'Het getal '. $getal . ' in het kwadraad '. $hoeveelKwadraad . ' = ' . kwadraad($hoeveelKwadraad) . '<br><br>'; 
     echo 'De wortel van het getal '. $getal . ' = ' . wortel(); 
    } else { 
     echo 'Je getal is geen getal maar iets anders, voeg een getal in!'; 
    } 
?> 

編輯:

body{ 
    font-family:Cambria; 
    background-color:#9A9FFF; 
    font-size:20px; 
} 
table{ 
    border-collapse:collapse; 
} 

PHP:

<?php 

// Decladeren 
$getal = 5; 
$hoeveelKwadraad = 2; 

// Functies 
function kwadraad($hoeveelKwadraad, $getal){ 
    echo ''. pow($getal, $hoeveelKwadraad); 
} 
function wortel($getal){ 
    echo ''. sqrt($getal); 
} 

if(is_numeric($getal)){ 
    echo 'Het getal '. $getal . ' in het kwadraad '. $hoeveelKwadraad . ' = ' . kwadraad($hoeveelKwadraad, $getal) . '<br><br>'; 
    echo 'De wortel van het getal '. $getal . ' = ' . wortel($getal); 
} 
else{ 
    echo 'Je getal is geen getal maar iets anders, voeg een getal in!'; 
} 

?> 

結果我得到:

enter image description here

答案一定是在句末,現在是剛剛開始。

+0

如果你想在字符串連接中使用你的函數的結果(echo out ...),你應該返回它而不是在函數本身中回顯它。您需要將您在函數中使用的所有變量作爲參數發送給函數,另請參閱http://php.net/manual/en/language.variables.scope.php。 – jeroen

+1

您必須在函數的開頭聲明'$ getal'作爲'global'('global $ getal;')。或者將$ getal值作爲參數傳遞給你的函數 – Mat

+1

你必須閱讀[variabe scope](http://php.net/manual/en/language.variables.scope.php):在函數'getal '不是全局'$ getal':你必須這樣調用它:'function functionname(){global $ getal; echo sqrt($ getal); }' – fusion3k

回答

2

您的問題是變量作用域之一。

$getal默認情況下在函數內部是不可見的,所以最好的解決方案是將該變量作爲參數傳遞給函數。 不要使用全局

你也是echo'你的計算結果直接寫入輸出緩衝區,而不是使用返回。

<?php 

// Decladeren 

$getal = 5; 
$hoeveelKwadraad = 2; 

// Functies 

function kwadraad($hoeveelKwadraad, $getal){ 
    // also return the value, dont directly echo it 
    return pow($getal, $hoeveelKwadraad); 
} 
function wortel($getal){ 
    // also return the value, dont directly echo it 
    return sqrt($getal); 
} 

if(is_numeric($getal)){ 
    echo 'Het getal '. $getal . ' in het kwadraad '. $hoeveelKwadraad . ' = ' . kwadraad($hoeveelKwadraad, $getal) . '<br><br>'; 
    echo 'De wortel van het getal '. $getal . ' = ' . wortel($getal); 
} 
else{ 
    echo 'Je getal is geen getal maar iets anders, voeg een getal in!'; 
} 

?> 
+0

你爲什麼不推薦全球?在很多情況下,你使用多個值,你推薦將它們全部傳遞給它?它只會使我認爲的代碼複雜化,所以真的想知道爲什麼不使用全局代碼。 – Firewizz

+0

如果您將其作爲參數傳遞,那麼對函數中的要求絕對不會產生混淆,它會自行記錄。 – RiggsFolly

+1

http://stackoverflow.com/questions/7290993/safe-alternatives-to-php-globals-good-coding-practices – RiggsFolly