我最近开始使用PHP ......除了一件事,一切都很好。 我试图从另一个PHP文件调用一个函数...但它不起作用。 它可能非常简单,但我没有发现任何有用的东西来解决它。
我使用过“required_once”,但它仍然不起作用。 有谁知道我哪里出错了?
<?php
require_once "/Applications/MAMP/htdocs/me/database_functions.php";
require_once "/Applications/MAMP/htdocs/me/encode_decode.php";
if (isset($_POST['url']) && $_POST['url'] != "http://")
{
//Get the url posted
$long_url = $_POST['url'];
//Create record in long_url table and return it's id
$long_id = create_long_url($long_url);
到目前为止一切都有效..但是 问题是这个下一个函数调用..它甚至没有进入函数。
$short_url = $encode($long_id);
}...............etc...
encode_decode.php看起来有点像......
<?php //encode_decode.php
function encode($number)
{
echo "<br />in encode";
//Encode numer to 6 char
$s = strtr(rtrim(base64_encode(pack('i', $number)), '='), '+/', '-_');
echo $s;
return $s;
}
非常感谢任何帮助...
答案 0 :(得分:3)
在函数调用之前不需要$
$short_url = $encode($long_id);
应该是
$short_url = encode($long_id);
答案 1 :(得分:1)
只有在函数存储在变量中时才需要美元符号(不是)。
$short_url = encode($long_id);
答案 2 :(得分:1)
从功能前删除美元符号。 PHP中的美元符号表示变量
答案 3 :(得分:0)
正如所有其他人所说:
$short_url = encode($long_id);
但你也可以清理你的require_once语句:
define('DS', DIRECTORY_SEPARATOR);
require_once(dirname(__FILE__) . DS . 'database_functions.php');
require_once(dirname(__FILE__) . DS . 'encode_decode.php');
您可以使用'/'作为文件名的前缀,而不是对DS的define()和引用。这也假设您的文件是相对的(但如果不只是将文件夹添加到文件名前面) - 如果您从不同的服务器移动您的站点(即测试,生产),这将确保您不会遇到任何问题。