代码示例;
PHP网页:(index.php)
<html><head></head>
<body>
<?php
include("class_validation.php");
$val = new validation();
if(isset($_POST['action'])) doSomething();
function doSomething() {
$val->validate(); //I AM UNABLE TO DO THIS!
}
?>
</body>
</html>
PHP文件:(class_validation.php)
<?php
class validation()
{
function validate(){
//some validation
}
}
?>
问题:如何在我在PHP网页中创建的函数中调用'class_validation.php'文件中的函数?我可以正确调用函数doSomething()以及函数$ val-&gt; validate();当不在另一个功能。我有办法做到这一点吗?
答案 0 :(得分:3)
$val
超出了doSomething()
函数调用的范围。将它作为参数传递给函数:
// Define the function to accept a parameter. Use a type hint to be sure it is
// a validation object
function doSomething(validation $val) {
$val->validate();
}
if(isset($_POST['action'])) doSomething($val);
(PHP documentation on type hinting)
或者, 不推荐 ,您可以使用函数内的global
关键字来引用全局$val
。
function doSomething() {
// Don't do it this way. The func parameter is preferred
global $val;
$val->validate();
}
答案 1 :(得分:0)
您似乎在寻找关闭支持,仅适用于anonymous functions。
根据您的代码示例,它似乎不是一个正确的用例。也许您应该将此值作为函数参数传递?