我有一个PHP脚本,它在PHP 5中运行良好,但在PHP 4中不能正常工作。我做了一个小测试案例供您演示(免责声明:我知道下面的代码可以写得更好,但它并不是实际使用的代码,而是用来演示我所说的内容的代码):
class Messenger {
var $messages = '';
function add($message) {
$this->messages .= "$message\n";
}
}
function add($m) {
if (! isset($GLOBALS['instan
<?php
class T {
public function x(){
return true;
}
}
var_dump(T::x());
class X {
public function x(){
return true;
}
}
var_dump(X::x());
这一守则的结果是:
bool(true)
PHP Fatal error: Non-static method X::x() cannot be called sta
我正在编写一个最小依赖项注入类。但是,当我试图访问静态方法内的静态属性时,php会发出“未定义变量”通知。守则是:
class DI{
/**
* @var array $registry Class dependency resolving functions
*/
public static $registry = [];
/**
* @var array $instances Class instances for singleton classes
*/
public static $instances = [];
public static function regist
我是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
*对不起,我现在正在学英语,我的英语还不太好。请理解我的处境。
据我所知,静态需要使用类::函数(Params);
就像这张。
class Foo {
static function Bar($msg){
echo $msg;
}
}
XE中有一个文件(在韩国开发的is CMS )。
(XE官方网站:)
当然,这是一个真实文件的摘要。
<?php
/**
* Manages Context such as request arguments/environment variables
* It has dual method structure, e
我有一个简单的类,我想从类外设置public变量。
<?php
class AlachiqHelpers
{
public $height;
public static function getHeight($height)
{
return $this->height - 50;
}
public static function setHeight($height)
{
$this->height = $height;
}
}
因此,我得到了以下错误:
在对象上下文中不使用$th
请参见下面的类定义:
我目前正在使用5.3.9版本的PHP
class A{
static function ab(){
echo "static function ab<br>";
}
public function xy(){
echo "public function xy<br>";
}
}
$obj = new A();
$obj->ab();
A::ab();
两个函数调用都提供相同的输出,没有任何错误。
static function ab
stat
此代码运行良好:
<?php
class Test {
public function hi($data) {
$instance = !(isset($this) && $this instanceof self) ? new static() : $this;
echo "HI!!! ".$data."\n";
return $instance;
}
public function log($data) {
$instance = !(isse
我不知道这是什么错误。请谁给我解释一下
在我的UserController.php
class UserController extends Controller {
public function viewCard($card_id) {
return Tag::test($card_id);
}
}
在我的模型Tag.php上
class Tag extends Model {
public function test($card_id){
return DB::SELECT(DB::RAW("SELECT name FROM
如何在静态方法中使用'this‘?我一直收到错误:PHP Catchable fatal error: Object of class could not be converted to string
下面是我尝试使用的方法:
public static function getFirst(){
$this->_id = 1;
$this->_name = $this->_db->query("SELECT name FORM users WHERE id = 1");
$this->_occupation = $
我有一个Zend_Form对象,我想在一个页面中重复使用几次。我遇到的问题是,每次渲染时,它都有相同的元素ID。每次呈现表单时,我都无法找到为所有ID提供唯一前缀或后缀的方法。
完全解
子类Zend_Form
class My_Form extends Zend_Form
{
protected $_idSuffix = null;
/**
* Set form and element ID suffix
*
* @param string $suffix
* @return My_Form
*/
public fu
想知道下面的例子是如何实际工作的,以及如何能够动态地做一些事情。使用call_user_func或call_user_func_array不允许这种情况发生。
<?php
class Person
{
public $name = "George";
public function say_hi()
{
return ExtraMethods::hi();
}
}
class ExtraMethods
{
public function hi()
{
return "
我正在做一个在后端(nodejs)和前端都使用typescript的项目。这个项目涉及到一些密码学,这意味着我使用的是 --在后端,我使用作为填充程序,所以我可以在客户端和服务器之间共享代码。
有没有一种方法可以让模块在客户机上导出一件事,在服务器端导出另一件事,这样我就可以通过import * as crypto from './webcrypto'以一种通用的方式公开接口?
在服务器端,它应该导出node-webcrypto-ossl,而在客户端,它只公开window.crypto。
我尝试了各种方法,但webpack一直试图将node-webcrypto-ossl拉入浏览
有没有办法在不使用'call_user_func‘和eval的情况下调用类中的函数?
这就是为什么我会问:
当我使用'call_user_func‘时,我得到'$this not in context’错误:
$this->id = $selectId['id'];
$file = 'score_' . $this->sid . '.php'; //the file with the class
if (@include_once($file)) { //including the file
$sc
我使用的是php-7,在运行测试时遇到了这个错误。
Error: Using $this when not in object context
src/Notification.php:28
tests/NotificationTest.php:10
它在$this->log->info(" Message sent ");上失败
内容
<?php
declare(strict_types=1);
namespace CCP;
use CCP\MyMailer;
class Notification{
private $log;
pu
假设我有一节课
class person {
public static function get_pk(){
return self::$primary_key;
}
}
和一个扩展类
class user extends person {
protected $primary_key = 'id';
}
echo user::get_pk(); // should echo id
无论何时我运行它,它都会自然地失败,因为$primary_key不是一个静态变量。如何让它返回主键?
是的,我可以更改类结构、函数结构并使其成为非静态的,
在我的项目中,我在php中定义了一个Datasource类。
我想用类调用函数,所以我在Datasource类中定义了静态getRedis函数。
以下是Datasource.php代码:
<?php
namespace common;
class Datasource {
public $config_name;
public $server_region;
public function __construct() {}
public static function getRedis($config_name = NULL, $server_region