2013-07-10 4 views
0

У меня есть два файла. один файл содержит функции и другой, который пытается вытащить данные.PHP, вызывающий функцию сбой

function.php

<?php 

    function randomString() { 
    $str = ""; 
    $characters = array_merge(range("A","Z"),range("a","z"),range("0","9")); 
    $max = count($characters) - 1; 
    for ($i=0; $i < $length='8'; $i++) { 
     $rand = mt_rand(0, $max); 
     $str .=$characters[$rand]; 
    } 
    return $str; 
} 
?> 

fortesting.php

<?php 

    randomString(); //i'm getting this error: Fatal error: Call to undefined function randomString() "FILE NAME HERE" on line 3 

?> 
+2

'include ('function.php');' in fortesting.php –

ответ

1

Вы не включили файл, содержащий определение функции, так что это не доступный в области, когда вы пытаетесь вызвать его. Вам нужно будет использовать include, require, include_once, или require_once.

  • include в основном тянет файл, добавляя его код/​​содержимое в этот момент. Это полезно для импорта файлов HTML или шаблонов. Если он не может найти файл, PHP выдает предупреждение, но попытается продолжить.
  • include_once ведет себя так же, как include, добавив, что он отслеживает, какие файлы уже были включены. Файл не будет включен, если он уже был извлечен раньше, что полезно, когда он содержит определения функций и тому подобное, что приведет к возникновению ошибок, если PHP попытается определить их дважды.
  • require и require_once похожи на их экземпляры, но будут вызывать ошибки, если файл не может быть извлечен (возможно, файл не существует, например). Они хороши, когда вам нужно, чтобы убедиться, что код, безусловно, ввозимые или в другом месте вещи не будут работать правильно (определения классов, функций DEFS и т.д.)

Таким образом, ваш файл fortesting.php должен выглядеть следующим образом:

<?php 
require_once "function.php"; 
echo randomString(); 

include/require и другие являются языковыми конструкциями, а не функциями, и вы можете использовать скобки с ними или нет в зависимости от ваших личных предпочтений. То есть, require_once "foo.php"; совпадает с require_once("foo.php");.

Для получения дополнительной информации ознакомьтесь с разделом PHP Manual.

Надеюсь, это поможет!

+0

спасибо всем. включенный работал, и я забыл, что я призывал RETURN не ECHO, поэтому ничего не показывалось. – lakay

+0

@ user2556174 использовать 'echo andomString();'. –

1

убедитесь, что в вашем fortesting.php вы следующее заявление.

require_once "function.php"; 
1

fortesting.php должен require или include function.php

<?php 
    require('function.php'); 
    randomString(); 
?> 
+0

Я думал, что если его функцию вы можете назвать в любом месте без добавления «include», в качестве примера. В любом случае, я добавил include, но результат возврата пуст. Я пробовал эхо его не как функцию, а код отлично работает. Я что-то не хватает?мой редактор кода отключен? – lakay

1

fortesting.php страница Shoule быть

<?php 
require_once("path_to_file/function.php"); 
randomString(); 

?> 

Вы должны включить function.php