在PHP的最新版本(5.6以下)中,以下是一个无效程序
error_reporting(E_ALL);
class A
{
public function hello(X $one, Y $two)
{
}
}
class B extends A
{
public function hello()
{
}
}
interface X
{
}
interface Y
{
}
$b = new B;
PHP将拒绝运行此命令,而是显示如下所示的错误消息
PHP Strict standards: Declaration of B::hello
如果我有这样的类:
<?php
class Model
{
var $db;
function Model()
{
$this->db=new Db_Class();
}
}
?>
以及扩展父类的第二个类:
<?php
class LessonModel extends Model
{
public function LessonModel()
{
//code here
}
public function getTitle($id)
{
$thi
我正在开发一个sql类,并试图弄清楚如何从外部php文件中检索数据,以便在整个类中可用。我猜我必须这样做:
class sqlQuery {
protected $database = array();
function __construct(){
require_once (config.php);
}
}
class model extends sqlQuery {
function __construct() {
$this->connect($this->database['hostname'], $this->da
我正在尝试MVC,试图创建一个简单的框架。这是我正在做的一个例子:
<?php
require_once('config.php'); //Here I have the Config object
class App{
protected $config;
protected $controller;
public function init(){
$this->config = new Config;
$this->controller = new Main_Controller;
}
}
c
不知何故,我的思想远离了当前的问题,我犯了一个可怕的错误。我在一个只初始化类属性的方法中调用了一个父构造函数。还是我..。父构造函数的工作是设置ID值。PHP让我做到了这一点。但这难道不是错的吗?看起来我可以用同样的方式调用类自己的构造函数。不是应该只允许构造函数在创建类的实例时调用吗?仅在创建实例时调用..
<?php
class A {
public function __construct() {
echo "Test<br />";
}
}
class B exte
我有一个CodeIgniter项目,我想通过CLI调用我的控制器方法之一,但是附加到CI超级对象的普通属性和方法似乎缺少了吗?
例如,在正常的http请求期间运行完全正常的以下脚本会产生一个错误:
class Worker extends MY_Controller {
public function __construct() {
if(php_sapi_name() !== 'cli') {
show_404();
}
}
public function test(){
$
我知道在Java中,构造函数中的super()必须作为重写构造函数的第一行调用。
这也适用于PHP中的parent::__construct()调用吗?
我发现自己写了一个这样的异常类:
class MyException extends Exception {
public function __construct($some_data) {
$message = '';
$message .= format_data($some_data);
$message .= ' was passed but was not expected&
例如..。
如果我有一个Module类:
class Module{
var $page;
function Module($page){
$this->page = $page;
}
}
然后是一个特定的News模块类:
class News extends Module {
function aFunction(){
return $this->page->id;
}
}
我可以像这样实例化News吗:
$page = new Page();
$news = new News($page);
或者我必须这样做:
$page = ne
我有个代码片段
<?php
abstract class Testing{
public abstract function tester();
public function testing(){
$this->tester();
}
}
class Test extends Testing{
public function tester(){
echo 'test';
}
}
$t = new Test();
$t->testing();
我应该有一个输出test,但是我得到的
我是OOP PHP的乞讨者。我有这样的代码
class Index
{
public $activepage = true;
public $url;
public $page;
function __construct()
{
if ($this->activepage) {
$this->url = "Yes";
$this->page = "Home";
} else {
$this->
我有这样的问题:在Model类中,我创建了一个受保护的变量,但是在Model类的子类中,他是不可用的。
class Model{
protected $db = null;
public function __construct(){
require_once 'app/classes/db.php';
$db = new DB();
}
}
这是他们的孩子:
class Model_Main extends Model{
public function get_data(){
$db->select(&
我尝试使用父类的名称,比如构造函数,并且部分地为我工作。
第一次呼叫
"DarthVader法“
类似构造函数,但从不调用
"LukeSkywalker构造函数“。
有人知道怎么做吗?
示例:
Darth.php
class DarthVader{
public function DarthVader(){
echo "-- Obi-Wan never told you what happened to your father.\n";
}
public function reponse(){
有一些方法可以在php中初始化抽象类的属性,如java中的示例?
public abstract class Person
{
private String name;
public Person(String name)
{
this.name = name;
}
}
public class Client extends Person
{
public Client(String name)
{
super(name);
}
}
下面是我的实际代码:我得到了这个错误:“变量$name似乎未初始化”
是否必须从子类构造函数中的构造函数中调用父构造函数?
要解释,请考虑以下示例:
class Parent{
function __construct(){
//something is done here.
}
}
class Child extends Parent{
function __construct(){
parent::__construct();
//do something here.
}
}
这样做是很正常的。但是,请考虑类Child的下列构造函数:
function __constr
在Codeigniter中使用Doctrine ORM时,我收到以下错误消息。
( ! ) Fatal error: Call to a member function getAttribute() on a non-object in C:\xampp\htdocs\giftshoes\system\database\doctrine\Doctrine\Record.php on line 1424
Call Stack
# Time Memory Function Location
1 0.0011 327560 {main}( ) ..\index.php:
为什么在将CodeIgniter从v1.7升级到v2.1后会出现此错误?
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Site::$load
Filename: libraries/Website.php
Line Number: 25
Fatal error: Call to a member function library() on a non-object in C:\xampp\htdocs\travel\application\libraries\Website.php
为什么子类不在父构造函数方法中?当我运行$obj = new C();时,我应该做哪些修改来使A,B,C的构造函数方法按顺序执行
<?php
class A
{
function A()
{
echo "I am the constructor of A. (Grand Parent)<br />\n";
}
}
class B extends A
{
function B()
{
echo "I am the constructor of B. (Parent)<b
我希望避免为扩展类键入use语句。它看起来应该是多余的,因为父类知道类型提示的类型?
例如,我有一个父类。
/* parent.php */
<?php
namespace App\ParentClass;
use App\User;
use App\Request;
class ParentClass {
public function __construct(
User $user,
Request $request
)
{
// do something
}
}
还有一个孩子班
/* parent.
我正在尝试构建一个面向对象的PHP发票-脚本。我想将数据输出到PDF中,所以我使用FPDF。我在发票类的方法中创建这个对象,如下所示:
public function renderPDF() {
require("pdf.class.php");
$this->invoicePDF = new PDF();
$this->invoicePDF->AddPage();
$this->invoicePDF->SetFont('Helvetica',''
我在PHP中使用OOP已经有一段时间了,但是由于某种原因,我的大脑完全崩溃了,并且无法解决这里的问题!
我有一个更复杂的类,但是编写了一个更简单的类来测试它,即使这样也不能用.
有人能告诉我我做错了什么吗?
class test
{
public $testvar;
function __construct()
{
$this->testvar = 1;
}
}
class test2 extends test
{
function __construct()
{
echo $this->testva
我试图理解一个PHP OOP概念,假设我有两个类A和B.B扩展A,所以A是基类/父类。如果A类有一个__construct,B类会自动继承它.?
示例:
class Car
{
public $model;
public $price;
public function __construct()
{
$this->model = 'BMW';
$this->price = '29,00,00';
}
}
class Engine extends Car
{
pa
为了练习,我正在PHP中开发一个小型MVC框架。但是,PHP似乎不喜欢我的Controller类。该类包含加载程序的实例,该实例加载视图:
abstract class Controller
{
public $load;
function __construct($load)
{
$this->load = $load;
}
abstract public function index();
}
从那里开始,我可以覆盖我所有控制器的控制器。例如,我的索引控制器:
class Index extends Controller
{
addRecipients使用push_array,但它不起作用。我到底做错了什么?
在class.emailer.php中
class Emailer
{
public $sender;
public $recipients;
public $subject;
public $body;
function __construct($sender)
{
$this->sender = $sender;
$this->recipients = array();
}
public function addRecipients($recipient)
{
ar
如何不使用构造函数php覆盖子类中父类中声明的属性。
例如:
class A {
public $user;
public function __construct {
$this->user = 5;
}
}
class B extends A {
public function __construct {
//How do I make sure that the variables from the parent object are inherited?
}
}
我试图在PHP中创建一个非常简单的数据库连接类,但遇到了一些问题。
首先,下面是我编写的代码:
class db {
protected $db;
public function __construct() {
$this->db = new PDO('mysql:host=127.0.0.1;dbname=main', 'root', '');
}
}
每当我试图从扩展我的数据库类的另一个类调用$db时,我就会得到一个类似于下面这样的错误:
致命错误:在class.php中对非对象调用成员函
为什么我不能像这样使用代码?
<?php
class NoConstructor {
}
class ChildWithConstructor extends NoConstructor {
public function __construct() {
parent::__construct();
// do something
}
}
$foo = new ChildWithConstructor();
// **Fatal error: Cannot call constructor in file.php on line 8*
我一直在网上寻找答案,但找不到任何相关的东西,所以我想在这里问一问。
如何从扩展类到它的父类实现函数?
基类(父类)
require_once('FirstChild.class.php');
require_once('SecondChild.class.php');
class Base {
public $first;
public $second;
function __construct() {
$this->first = new FirstChild();
$this->second = new SecondChild(
我收到以下错误:
致命错误:在第7行的C:\xampp\htdocs\rpo\application\controllers\Home.php中找不到类“家长”
这是我的代码:
class Home extends CI_Controller
{
function __construct()
{
parents::__construct();
}
function index()
{
if($this->session->userdata('logged_in'))
{
我正在尝试使用PHP中的OOP创建一个mysql查询。在下面的代码中,类"database_disconnection“没有抛出任何错误或通知,但是最后一个类"database_query”通知我$database_handle是未定义的。我不知道是什么导致了这种情况,因为我创建了database_query类作为database_connection的派生类,其中包含了私有的$database_handle变量。任何帮助都将不胜感激!
实例化对象:
include("includes/database_classes.php");
new databas
这可能是基本的知识,但我很好奇,因为我自己还不知道。为什么在PHP (当然还有其他语言)中,当使用类时,子类必须使用一个构造方法来访问父类的属性。如果这一点不清楚,我将提供一个示例。
<?php
class aClass
{
protected $aProperty = "Some value";
}
class aDifferentClass extends aClass
{
public $aDifferentProperty;
public function _