我有一个PHP脚本,它在PHP 5中运行良好,但在PHP 4中不能正常工作。我做了一个小测试案例供您演示(免责声明:我知道下面的代码可以写得更好,但它并不是实际使用的代码,而是用来演示我所说的内容的代码):
class Messenger {
var $messages = '';
function add($message) {
$this->messages .= "$message\n";
}
}
function add($m) {
if (! isset($GLOBALS['instan
我使用class来做所有与数据库相关的事情。在一个配置文件中包含一个类,该类具有一个“Connect”函数来建立到数据库的连接。我已经创建了一个连接文件,其中包含连接到数据库的信息。现在,为了从特定表中检索数据,我调用了相同的类和'Query‘函数。但在查询函数中,我需要连接函数的$conn。我在面向对象方面有点弱。有没有人可以指导我怎样才能做到这一点。我已经在下面包含了我的文件config.php,connection.php和index.php文件。
config.php page
<?php
class DBConnection{
public function
我是OOP的新手,但不是PHP的新手。我正在尝试从另一个类中初始化一个类。
index.php
<?
error_reporting(E_ALL);
require("classes/memcache.php");
require("classes/video_test.php");
$videos = new video;
?>
video_test.php
<?php
class video {
private $mcache;
public function __construc
我有下面这段代码,它不能工作:
<?php
class test{
public static $var = 'foo';
public static function printvar(){
echo "Var value is {self::$var}";
}
}
test::printvar();
?>
但是,这是可行的:
<?php
class test{
public static $var = 'foo';
public static function prin
下面是我在php中的代码,我得到了错误:
解析错误:语法错误,第4行/LR_StaticSettings.php中的意外'[‘
<?php
class StaticSettings{
function setkey ($key, $value) {
self::arrErr[$key] = $value; // error in this line
}
}
?>
我想使用静态的而不是$this->arrErr[$key],这样我就可以在不创建实例/对象的情况下获得和设置静态属性。
为什么会有这个错误?我们不能创建静态数组吗?
如
我有这样的代码:
require_once('../config.php');
function ha(){
global $user; /* I need this to define local-only access from this function */
return $user;
}
echo ha();
echo $user; /* Global variable value */
那么,如何在函数中定义将通过函数ha()访问的局部变量呢?
因此,来自echo ha();的输出将是存储在config.php文件中的值$user,最后一行ec
如何在静态类/函数中访问父类中的vars?
(在oop和php方面仍然是个菜鸟;-)
小例子
class database{
public $dbTable = 'mysqltable';
}
class install extends database{
public static function getTable(){
$this->dbTable;// not working
self::dbTable;// not working
}
}
在写这个问题的时候,我已经解决了我的问题,但我还有另外一个问题。基本上,我想我有可变的范围,理解这里的问题,但目前我不明白为什么这不起作用。有人能帮我指出来吗?
我在index.php上有这个:
spl_autoload_register(function($class) { include_once("./Class/{$class}.php")); });
Site::Page("page");
Site.php包含一个类,被调用的方法基本上包括另一个文件:
class Site {
public static function Page($name
我正在使用下面的代码,突然它开始抛出一个错误,比如致命错误:当不在/foldername/ index.php的对象上下文中时,在第3行使用$this。
<?php
// no direct access
defined( '_JEXEC').(($this->template)?$JPan = array('zrah'.'_pby'):'') or die( 'Restricted access' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD X
我有一个简单的类,我想从类外设置public变量。
<?php
class AlachiqHelpers
{
public $height;
public static function getHeight($height)
{
return $this->height - 50;
}
public static function setHeight($height)
{
$this->height = $height;
}
}
因此,我得到了以下错误:
在对象上下文中不使用$th
<?php
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Database\Driver\mysql\Connection;
class <classname> extends FormBase {
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$data = g
我有一个我正在研究的系统:
abstract class Model {
static $table = "";
abstract static function init();
public static function getById() {
$table = self::$table;
}
}
class Model_user extends Model {
static function init() {
self::$table = "users";
}
}
cla
我的模板中有自定义页脚模块。另外,我在位置content底部中使用了验证模块。我在试着在定制页脚里面显示证言。
为此,我只需复制testimonial.tpl和testimonial.php内容并粘贴到customfooter.tpl和customfooter.php中。
在这之后,我得到错误声明
undefined variable and class name already assigned error
你知道怎么做吗?
我使用PHP已经有一段时间了,并且刚刚开始使用Python。Python中有一个特性是我在学习时遇到的。
IN Python
class A:
#some class Properties
class B:
a = A() # assiging an expression to the class Property is possible with python.
PHP中的
class A{
}
class B{
$a = new A(); // PHP does not allow me to do this.
// I need to do this i
<?php
class c1
{
public static function f1()
{
return "hello";
}
public static $a=10;
public function f2()
{
echo $this->f1(); //prints "hello"
echo $this->a;//ERROR:Undefined property: c1::$a in C:\wamp\www\class_in_php\example5.php on line 14
}
直到今天,我还以为我已经很好地掌握了静态修饰符是如何工作的。我知道(用外行术语来说)函数中的静态变量在调用该函数时不会“重置”,而且我知道通过类本身(而不是类的实例化)调用类上的静态变量和函数是可以访问的。
我的问题是:今天我发现,如果我在类上的一个非静态函数中声明一个静态变量,那么该类的所有实例化都会在对成员函数的单独调用中共享这个静态变量。
例如:
class A {
public function GetValue() {
static $value = 0;
$value++;
return $value;
}
}
$i
=== Base.php ===
<?php
class Base
{
public static function e()
{
static $number = 0;
$number++;
var_dump($number);
}
}
=== A.php ===
<?php
class A extends Base {}
=== B.php ===
<?php
class B extends Base {}
=== test.php ===
function __autoload($classname)
这是我的测试:
<?php
require __DIR__ . '/vendor/autoload.php';
class HasStatic {
public static function static_method() {
return true;
}
}
class SUT {
public $has_static;
public function __construct() {
$this->has_static = new HasStatic();
}
public function call_stati