我想将此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;
}
答案 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);
我不确定你想要做什么,但是从我们讨论的内容来看应该是这样的。
希望它有所帮助!