Nasıl başka bir işlev içinde bir PHP işlevi kullanabilirsiniz?

5 Cevap

Ben bunu nasıl yapabilirim, başka bir işlev içinde bir işlevi kullanmak gerekir? Ben fonksiyon kapsamı dışında olduğunu biliyoruz, ben henüz OOP ve sınıfları anlamıyorum. Birisi bana yardımcı olabilir?

function some_function ($dfd, $characters, $dssdf, $sdfds){

    $sdfs = 'sdfsdf'; //random stuff goes on

    //this is where my trouble begins I have a scope issue, I need to call this function inside of this function
    readable_random_string($characters);
}

UPDATE here is the other function as requested

function readable_random_string($length = 6) {
    $conso = array("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "r",
    	"s", "t", "v", "w", "x", "y", "z");
    $vocal = array("a", "e", "i", "o", "u");
    $password = "";
    srand((double)microtime() * 1000000);
    $max = $length / 2;
    for ($i = 1; $i <= $max; $i++) {
    	$password .= $conso[rand(0, 19)];
    	$password .= $vocal[rand(0, 4)];
    }
    return $password;
}

5 Cevap

Ben bu benim için çalıştı neden emin değilim, ama yaptım:

<?php

function alpha ($test) {
        $test = $test." ".$test;
        return $test;
}

function beta ($var) {
        echo alpha($var);
}

beta("Hello!");
//End Result : "Hello! Hello!"
?>

Birisi neden yukarıda çalıştığını açıklamak olabilir belki, eğer genel soruyu cevaplamak için yardımcı olacak?

fonksiyonu readable_random_string () şifre dize döndürür. Sen yerleştirilmek yapabilirsiniz some_function bir değişkene bu dönüş değerini atayın ().

$password = readable_random_string($characters);

btw: Adından da ben $ karakterler içeren beklediğiniz .... 'abc' ya da dizi ('a', 'b', 'c') değil, uzunluk gibi karakterler. "Konuşma" değişkenlerin isimlerini tutmaya çalışın.

Belki de bu özellik arıyor:

function foo($message) {
    $function = 'bar';
    $function($message); // calls bar(), or whatever is named by $function
}

function bar($message) {
    echo "MESSAGE: $message\n";
}

foo("Hello"); // prints "MESSAGE: Hello"

Ben ilk başta orada düşündüğümüz gibi bir şey çıktısı değildi çünkü hiçbir kapsamı sorun var orada çıkıyor, sorun benim fonksiyonu ekran yerine baskı dönüşü sahiptir ve bu yayınlanmıştır kadar ben çok üzgünüm, bunu fark etmedi boşa soru = (

function readable_random_string($length = 6) {
    $conso = array("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "r",
    	"s", "t", "v", "w", "x", "y", "z");
    $vocal = array("a", "e", "i", "o", "u");
    $password = "";
    srand((double)microtime() * 1000000);
    $max = $length / 2;
    for ($i = 1; $i <= $max; $i++) {
    	$password .= $conso[rand(0, 19)];
    	$password .= $vocal[rand(0, 4)];
    }
    return $password;
}

return $password;

olmalıdır

echo $password;

Işlevi çağrılırken Yoksa ben / baskısını bunu yankı gerekir

Eğer kullanırsanız return $password sonra kullanmak zorunda $pass = readable_random_string($characters);

veya echo $password sonra readable_random_string($characters); kullanabilirsiniz kullanırsanız