如何将url传递给php类构造函数

时间:2013-12-23 16:48:36

标签: php

我想将此https://github.com/emotionLoop/visualCaptcha-PHP代码包含为库。

所以我包括来自外部文件夹的类,如下所示:

<?php printCaptcha('contact_us_form_vc',$_FORM_TYPE,$_FIELD_NAME); ?>

function printCaptcha($formId = NULL, $type = NULL, $fieldName = NULL) {
    require_once(SITE_ROOT . '/visualCaptcha/inc/visualcaptcha.class.php');
    $visualCaptcha = new \visualCaptcha\Captcha($formId, $type, $fieldName);
    $visualCaptcha->show();
}

在课堂上有我想从我的函数中传递的变量:

private $htmlClass = 'visualcaptcha.class.html.php';
    public static $imagesPath = 'images/visualcaptcha/';
    public static $audiosPath = 'audio/visualcaptcha/';
    public static $imageFile = 'image.php';
    public static $audioFile = 'audio.php';

任何想法如何传递它们?

我做了什么:

function printCaptcha($formId = NULL, $type = NULL, $fieldName = NULL, $htmlClass = NULL) {
    require_once(SITE_ROOT . '/visualCaptcha/inc/visualcaptcha.class.php');
    $visualCaptcha = new \visualCaptcha\Captcha($formId, $type, $fieldName, $htmlClass);
    $visualCaptcha->show();
}

而不是在课堂内:

public function __construct( $formId = NULL, $type = NULL, $fieldName = NULL, $accessibilityFieldName = NULL, $htmlClass = NULL )

并补充道:

if ( ! is_null($htmlClass) ) {
            $this->htmlClass = $htmlClass;
        }

1 个答案:

答案 0 :(得分:1)

根据评论,关于使用方法访问私有变量的快速示例可以是:

假设您有一个包含私有变量的类:

class testClass {
   private $privateVar;
}

你想改变它的价值,你可以这样做:

class testClass {
  private $privateVar;

  public function updatePrivateVar($value) {
     $this->privateVar = $value;
  }
}

所以,假设你有变量:

private $htmlClass = 'visualcaptcha.class.html.php';
public static $imagesPath = 'images/visualcaptcha/';
public static $audiosPath = 'audio/visualcaptcha/';
public static $imageFile = 'image.php';
public static $audioFile = 'audio.php';

并假设您要更新它们,对于公共的,您只需要使用以下语法:

Classname::$publistaticvar = $newValue;

示例:

Captcha::$htmlClass = $htmlClass;

对于私有的,假设你有一个像上面建议的方法,只需创建一个Captcha类的对象(如果你还没有创建一个):

$captcha = new Captcha;

并使用其方法更改私有变量值:

$captcha->updatePrivateVar($newValue);

我不确定你想要做什么,但是从我们讨论的内容来看应该是这样的。

希望它有所帮助!