我继承了一个网站,我目前拥有的代码似乎显示了第一类,根据我认为的字母顺序来判断,在自定义帖子的post循环中.
我有这样一段代码,它通过类别名称和帖子的标题:
class SeedPost {
public $post_id;
public $post_type;
function __construct($post_id) {
$this->post_id = $post_id;
$this->post_type = get_post_type($this->post_id);
}
functio
我正在尝试挖掘一些PHP特性。这是我的样本代码
<?php
abstract class Animal{
public $name;
public function __construct($name)
{
$this->name = $name;
echo 'animal instruct' . "\n";
}
public function eat(){
return $this->name . ' is eating food.'
假设以下情况。有类层次结构,它在方法中使用各种参数列表,可以对每个子类进行扩展。
<?php
header('Content-Type: text/plain; charset=utf-8');
class A {
public function __invoke(){
$arguments = implode(', ', func_get_args());
echo __METHOD__, ' arguments: ', $arguments, PHP_EOL;
}
}
class B
我正在尝试在PHP中使用OOP,但我对一些类继承的东西感到有点困惑。
这里有几个简单的类,我用它们来学习它们的工作方式。我只想在调用(父)类的子类中设置一个变量。从我读过的例子中看,这看起来应该可以工作,但是子类无法设置父变量:
class test {
private $myvar;
private $temp;
function __construct(){
$this->myvar = 'yo!';
$temp = new test2();
$temp->tester();
我有使用继承映射原理继承的实体。我有一个使用@ORM\PrePersist()生成的自定义标识符,它位于一个特征中,并在父类中使用。 我希望能够更新子类具有的属性,因此,我需要在子实体上运行端点 当我运行项目操作时,api平台找不到资源。 PATCH /api/childas/{hash} NotFoundHttpException Not Found api平台,它不能将哈希识别为标识符。将id作为您的标识,即使它是假的并且hash是真的。 特征来生成用于标识资源的散列。 <?php
namespace App\Entity;
use ApiPlatform\Core\Annot
我正在为PHP构建一个单元测试框架,我很好奇是否有一种方法可以获得排除父类方法的对象方法的列表。因此,鉴于这一点:
class Foo
{
public function doSomethingFooey()
{
echo 'HELLO THERE!';
}
}
class Bar extends Foo
{
public function goToTheBar()
{
// DRINK!
}
}
我想要一个函数,给定参数new Bar()返回:
array( 'goToTheBar
我不理解在PHP中调用父方法的概念。父方法不是静态的,但是它是静态的-通常PHP会抛出一个错误/警告。
的问题是,这是PHP的一个怪癖,还是在OOP中应该是这样?。
以php.net的例子为例:
<?php
class A {
function example() {
echo "I am A::example() and provide basic functionality.<br />\n";
}
}
class B extends A {
function example() {
echo
我编写这样的代码是为了给您一个示例
这是使用"$ This ->“
<?php
class A{
public function example(){
echo "A";
}
}
class B extends A{
public function example2(){
$this->example();
}
}
$b = new B();
echo $b->example2();
?>
这是使用parent::
<?php
class A{
public
PHP官方文档在解释的同时,在类和对象部分中扩展了,它说:
"When overriding methods, the parameter signature should remain the same or PHP
will generate an E_STRICT level error. This does not apply to the constructor
which allows overriding with different parameters."
所以我想知道,什么是参数签名?
文档中的示例如下所示:
<?php
class ExtendCla
一位用户在PHP上发布了一条评论。这是第二次投票最多的评论。他使用了以下代码示例:
<?php
abstract class base {
public function inherited() {
$this->overridden();
}
private function overridden() {
echo 'base';
}
}
class child extends base {
private function overridden() {
echo '
<?php
class HTML
{
protected $name;
public $id;
private $with;
protected function basicAttribute()
{
return "name='$this->name' id='$this->id'";
}
}
Class HTML_div extends HTML
{
public function __construct($id , $name)
{
$this->id = $id;
$this->name = $name;
}
不知何故,我的思想远离了当前的问题,我犯了一个可怕的错误。我在一个只初始化类属性的方法中调用了一个父构造函数。还是我..。父构造函数的工作是设置ID值。PHP让我做到了这一点。但这难道不是错的吗?看起来我可以用同样的方式调用类自己的构造函数。不是应该只允许构造函数在创建类的实例时调用吗?仅在创建实例时调用..
<?php
class A {
public function __construct() {
echo "Test<br />";
}
}
class B exte
在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 api{
//$api_Key;
public function getURL($url){
return file_get_contents($url);
}
public function postURL($url){
$data = array();
$data_string = json_encode(
如果我有这样的类:
<?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
我希望有人能帮我。如何最好地动态更改扩展原始类的页面标题、desc或键vs..vs..by?以下是我到目前为止所拥有的:
<?php
class siteGlobal
{
public $arr = array('title'=>'Page Default title','desc'=>'Page default description');
public function pageHeader()
{ ?>
<!doctype
下面的代码会让PHP感到不满,因为customMethod()是私有的。为什么会这样呢?可见性是否由声明位置决定,而不是由定义位置决定?
如果我想让customMethod只对模板类中的样板代码可见,并防止它被覆盖,我会不会只是将其设置为protected和final?
Template.php:
abstract class Template() {
abstract private function customMethod();
public function commonMethod() {
$this->customMethod();
假设您有以下内容:
<?php
interface Type
{}
class SomeType implements Type
{}
class SomeOtherType implements Type
{}
现在,如果您有一个将Type接口作为构造函数依赖项的抽象类,如下所示:
<?php
abstract class TypeUser
{
public function __construct(Type $type)
{}
}
为什么PHP允许重载具体类上的构造函数,如下所示:
<?php
class SomeTypeUser
嗨,我正在尝试使用一个模型,它将从另一个数据库生成动态表名。通过重写tableName()函数,我成功地设置了表名。但我说错了
The table "powerDovakin_{FUS.THUM}" for active record class "PowersTransactions" cannot be found in the database
下面是讨论中的模型类
<?php
class PowersTransactions
extends CActiveRecord {
public $symbol ;
我写了这段代码来检查我的应用程序的行为,我不明白为什么这段代码会工作。我有2个类和1个入口点
PHP 7.2
class Base{
public function check(){
return $this->checkUnexist();
}
}
class Main extends Base
{
public function checkUnexist()
{
return 'UNEXIST METHOD CALLED';
}
}
$main = new Main();
echo $mai
在PHP对象继承的过程中,我发现了一些奇怪的东西。
我可以从子类调用非静态父方法。
我找不到任何关于这种可能性的信息。此外,PHP解释器不会显示错误。
为什么这是可能的?这是正常的PHP特性吗?这是不是很糟糕的做法?
下面是一个代码,您可以使用它来测试它。
<?php
class SomeParent {
// we will initialize this variable right here
private $greeting = 'Hello';
// we will initialize this in the constructor