2014-05-16 142 views
-1

函数可以在没有类之外的类的情况下调用吗?函数可以在没有类的情况下调用吗? php

我有一些代码,我发现我的密码做哈希和身份验证。然而,php文件在顶部只有函数没有类声明。我不知道如何从我的其他页面调用函数。 Here is the hashing file I'm using

散列文件设置是这样的:

<?php  

public function MyFunction() { 
} 

而不是像这样:

<?php 

class MyClass{ 

    public function MyFunction() { 
    } 
} 

我已经试过 include_once 'PasswordHash.php';

然后在我的页面调用函数与这些:

Echo PasswordHash::create_hash('$Pass'); 
Echo create_hash('$Pass'); 
Echo PasswordHash->create_hash('$Pass'); 

他们没有工作,显示致命错误:等等等等无法找到类。

谢谢你的阅读和你的帮助。

+0

我完全不明白你想做什么。什么是公共职能MyFunction不在课堂内? –

+0

这就是我想弄明白的。 为什么代码没有类声明,所以我想知道他们为什么这样做。如果是这样的话,没有一堂课,它是如何运作 – WhiteShadow

回答

2

您将需要启动您的课程。

$password = new PasswordHash($pass); 
echo $password->create_hash; 

或者沿着这些线。

+0

这是使它工作的最好方法,使对象然后调用它吗? require_once'../ Login/PasswordHash.php'; $ password = new PasswordHash('$ pass'); echo $ password-> create_hash; 显示此错误 致命错误:类“PasswordHash”在 – WhiteShadow

+1

没有找到你需要阅读和理解为你提供的类/功能相关的文档。所有文档都在您提供的链接中。请先阅读它们,但仍然有麻烦回来再问一次。 – Mike

+0

会做,谢谢。 我只注意到链接到其他文件的页面显示如何使用它。我现在觉得有点笨 – WhiteShadow

1

几个问题:

  • create_hash('$pass')将创建一个字符串$pass的哈希值,该变量的不是价值,通过这样的:create_hash($pass)
  • 您必须创建类的实例,然后才能调用它的方法。
  • 您链接到非OO代码示例,为什么要使用类,而不是使用已经存在的代码?

所以,如果你要继续使用这个类:

$hasher = new MyClass();//or whatever name you gave the class 
echo 'The hash of the password is: ', $hasher->createHash($pass);//<-- change createHash with correct method name 

如果你要复制粘贴示例代码(如果它是允许的),只需调用它像任何旧功能:

echo 'The hash of the password is: ', create_hash($pass); 

但要确保函数声明:

if (!function_exists('create_hash')) 
    include 'path/to/file/containing/create_hash_functions.php'; 

哦,一类的外部函数没有访问修饰符:

function thisWorks(){} 
//note: no public 
public function thisFails(){}// <== error! 
0

我发现,你必须创建对象,那么你可以使用它。 不需要使它成为一类功能。

include_once '../Resources/PasswordHash.php';  

    $result = validate_password("foobar", $hash); 

这就是它所需要的。 只是被包括在内,然后你可以像在课堂上的其他功能一样调用它。

相关问题