GVKun编程网logo

关于方法的简单PHP类问题(php 方法)

10

在这篇文章中,我们将为您详细介绍关于方法的简单PHP类问题的内容,并且讨论关于php方法的相关问题。此外,我们还会涉及一些关于DW做的简单PHP管理、java–自定义Swing组件:关于方法的问题、J

在这篇文章中,我们将为您详细介绍关于方法的简单PHP类问题的内容,并且讨论关于php 方法的相关问题。此外,我们还会涉及一些关于DW做的简单PHP管理、java – 自定义Swing组件:关于方法的问题、JAVA 关于方法的返回值的调用、Java泛型-关于对象的大于方法的快速问题的知识,以帮助您更全面地了解这个主题。

本文目录一览:

关于方法的简单PHP类问题(php 方法)

关于方法的简单PHP类问题(php 方法)

我有一个关于 PHP类的简单问题.

多次我见过其他类框架等使用方法调用.

$post->data->text();

我喜欢这个功能,而不仅仅是做这样的事情.

$post->dataReturnAsText();

但我不太确定他们是如何创建这个功能的,或许有一个“子方法”?希望有人能指出我正确的方向……

解决方法

您提供的示例没有什么特别之处:

<?PHP

class Post{
    public $data;
}

class Data{
    public function text(){
    }
}

$post = new Post;
$post->data = new Data;
$post->data->text();

但是,您可能已经在方法链接的上下文中找到它(在JavaScript库中非常流行):

<?PHP

class Foo{
    public function doThis(){
        return $this;
    }

    public function doThat(){
        return $this;
    }
}

$foo = new Foo;
$foo->doThis()->doThat()->doThis();

DW做的简单PHP管理

DW做的简单PHP管理

在这个页面,有二个行为按钮,一个是“修改”,一个是“删除”。

点“修改”,没有问题;如下图所示:

点“删除”后,跳转后的页面无数据记录,其实这时在浏览页面里已经看不到了。
按正常是跳转到正式的删除页面,然后点击对应记录条下面的删除按钮,才完成删除,这样才对啊?

问题是出在哪儿了呢?


回复讨论(解决方案)

删除的查询语句是怎样的

if ((isset($_GET[''id''])) && ($_GET[''id''] != "")) {
  $deleteSQL = sprintf("DELETE FROM price WHERE id=%s",
                       GetSQLValueString($_GET[''id''], "text"));

  mysql_select_db($database_myconn, $myconn);
  $Result1 = mysql_query($deleteSQL, $myconn) or die(mysql_error());
}

$colname_Recordset1 = "1";
if (isset($_GET[''id''])) {
  $colname_Recordset1 = (get_magic_quotes_gpc()) ? $_GET[''id''] : addslashes($_GET[''id'']);
}
mysql_select_db($database_myconn, $myconn);
$query_Recordset1 = sprintf("SELECT * FROM price WHERE id = %s", $colname_Recordset1);
$Recordset1 = mysql_query($query_Recordset1, $myconn) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);

if (isset($_GTE[''id''])){
$query_Recordset1 = sprintf("SELECT * FROM price WHERE id = %s", $colname_Recordset1);
}else{
$query_Recordset1 = "SELECT * FROM price WHERE 1=1";
}

if (isset($_GTE[''id''])){
$query_Recordset1 = sprintf("SELECT * FROM price WHERE id = %s", $colname_Recordset1);
}else{
$query_Recordset1 = "SELECT * FROM price WHERE 1=1";
}


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
大神,小弟还是没有看懂。

估计你是直接执行了删除代码了

估计你是直接执行了删除代码了

qq吧

编辑页面:
删除

删除页面:
if($_POST) {
  是表单提交,执行删除
}else {
  通过 $_GET[''id''] 得到待删除记录,生成删除页面
}

java – 自定义Swing组件:关于方法的问题

java – 自定义Swing组件:关于方法的问题

我正在尝试构建一个新的 java swing组件,我意识到我可能能够找到一个能够满足我在网络上所需要的东西,但这部分是我学习实现这一目标的练习.

我想建立一个代表甘特图的摇摆组件.它会很好(虽然对于人们能够与之交互并不是必不可少的(例如,滑动任务来调整时间)

感觉就像最好的方法是继承JComponent,并覆盖PaintComponent()来“绘制图表”应该是什么样子的图片,而不是像尝试将所有东西都塞进自定义JTable中那样.

我已经阅读了几本关于这个主题的书,并且还看了几个例子(最值得注意的是像JXGraph这样的东西) – 但我对一些事情感到好奇

>我什么时候必须切换到使用UI委托,什么时候可以坚持在paintcomponent()中摆弄以呈现我想要的东西?
>如果我想要其他swing组件作为我组件的子元素(例如我想在我的甘特图上有一个文本框)

>我可以不再使用paintComponent()吗?
>我可以在甘特图中任意定位它们,还是必须使用普通的摆动布局管理器

提前谢谢了.

-高手

解决方法

我认为我几年前为java.net写的 the article今天仍然是正确的.在一个单一的类中做所有事情会让你在开始时变得更快,但是变得非常快.我强烈建议在模型(在主类中)和视图(UI委托)之间进行分离.该观点负责:

>与用户交互 – 鼠标,键盘等
>绘画
>根据需要创建“worker”子组件

在中长期,这是在Flamingo component suite中一次又一次地验证的方法,您可以将其用作额外的参考点(除了核心Swing组件的实现方式).

JAVA 关于方法的返回值的调用

JAVA 关于方法的返回值的调用

为什么我在定义一个变量调用方法的返回值的时候,会一同把方法中的输出语句一起调用了。怎么样才能只调用返回值而不调用方法中的输出语句

Java泛型-关于对象的大于方法的快速问题

Java泛型-关于对象的大于方法的快速问题

  1. 让我们用value()方法定义接口
    并提供isGreaterThan
  2. 的默认实现

我们可以使此接口通用(以与绑定到HasValue的类型一起使用)

public interface HasValue<T extends HasValue<T>> {
    int value();
    default boolean isGreaterThan(T that) {
        return this.value() > that.value();
    }
}
  1. 现在通用方法应该是上限T extends HasValue
static <T extends HasValue> boolean isGreaterThanGeneric(T arg1,T arg2) {
    return arg1.value() > arg2.value();
}

static <T extends HasValue> T getGreaterGeneric(T arg1,T arg2) {
    return arg1.isGreaterThan(arg2) ? arg1 : arg2;
}
  1. 让我们提供HasValue接口的一些测试实现并对其进行测试。 注意:实现应绑定HasValue<MyClass>,以限制将接口应用于相同类型(感谢@Kayaman)
class Apple implements HasValue<Apple> {
    final String type;
    Apple(String t) {
        this.type = t;
    }
    @Override
    public int value() { return 10; }
    
    @Override
    public String toString() {
        return "apple " + type;
    }
}

class Orange implements HasValue<Orange> {
    @Override
    public int value() { return 20; }
    
    @Override
    public String toString() {
        return "orange";
    }
}

测试:

public static void main(String args[]) {
    Apple apple = new Apple("Golden");
    Apple apple1 = new Apple("Jonagold");
    Orange orange = new Orange();
    
    System.out.println("apple greater than orange = " + getGreater(apple,orange));
    System.out.println("apple greater than another apple generic = " + getGreaterGeneric(apple,apple1));
    // System.out.println("apple greater than orange generic = " + getGreaterGeneric(apple,orange)); // <-- won't compile: 
            // required: T,T
            // found: Apple,Orange
            // reason: inference variable T has incompatible bounds
}

输出:

apple greater than orange = orange
apple greater than another apple generic = apple Jonagold
,

他们显然是在要求您实现通用的maxByValue方法。由于greater-than包含连字符,因此还是无效的Java标识符,因此我将坚持使用maxByValue

几次提到拥有value方法的要求,因此我们将其编码为接口:

interface Value {
    int value();
}

现在,在此处具有通用参数的要点是确保maxByValue的返回类型足够具体以便使用。我们将此类型称为T。为了使参数具有可比性,T必须是Value的子类型。获取返回类型的唯一有意义的来源是参数类型。总结三点:

  • 类型参数T的子类型Value
  • 从参数推断出的类型
  • 结果类型为T

为您提供签名:

    public static <T extends Value> T maxByValue(T a,T b)

基本上只有两种有意义的实现方式。让我们以偏左的为例(即,如果值相同,则返回left参数):

public static <T extends Value> T maxByValue(T a,T b) {
    if (a.value() < b.value()) {
        return b;
    } else {
        return /* left as an exercise */;
    }
}

让我们尝试一个简单的整数示例:

    class IntValue implements Value {
        final int v;
        public IntValue(int v) {
            this.v = v;
        }
        public int value() {
            return v;
        }
        @Override
        public String toString() {
            return "" + v;
        }
    }
    
    IntValue a = new IntValue(42);
    IntValue b = new IntValue(58);
    IntValue c = max(a,b);
    System.out.println(c); // prints "58"

到目前为止一切顺利。让我们看看类型推断的精确度:

static interface Vehicle extends Value {
    String doGenericVehicleSound();
}
static abstract class Car implements Vehicle {
    public abstract String doCarSpecificSound();
    public String doGenericVehicleSound() {
        return doCarSpecificSound();
    }
}
static class Train implements Vehicle {
    public String doGenericVehicleSound() {
        return "tk-tk-------tk-tk--tk-tk--------------tk-tk";
    }
    public int value() {
        return 10000000;
    }
}
static class Ferrari extends Car {
    public String doCarSpecificSound() {
        return "rr-rrr-rrrr-rrrrrrr-rrrrrrrrrrrrrrrrrrrr-RRRRRRRRRR";
    }
    public int value() {
        return 222000;
    }
}
static class Tesla extends Car {
    public String doCarSpecificSound() {
        return "...        ...           ¯\\_(ツ)_/¯";
    }
    public int value() {
        return 50000;
    }
}

public static void main(String []args){
    System.out.println(maxByValue(new Ferrari(),new Tesla()).doCarSpecificSound());
    System.out.println(maxByValue(new Tesla(),new Train()).doGenericVehicleSound());
    // System.out.println(maxByValue(new Tesla(),new Train()).doCarSpecificSound());
        
}

在这里看到的要点如下。我们具有以下子类型关系:

Train   extends Vehicle
Car     extends Vehicle
Ferrari extends Car
Tesla   extends Car

以及以下具体实例的最小上限:

LUB(Train,Train) = Train
LUB(Train,Ferrari) = Vehicle
LUB(Train,Tesla) = Vehicle
LUB(Ferrari,Ferrari) = Ferrari
LUB(Ferrari,Tesla) = Car
LUB(Tesla,Tesla) = Tesla

(以及所有对称情况)。

现在,当我们

  • 将两辆车投入maxByValue,我们得到一辆车(第一个示例),但是
  • 当我们将汽车和火车放进maxByValue时,我们得到了更一般的Vehicle, 因此无法使用特定于汽车的方法(示例2和3;第三个方法无法编译-正确的是,因为火车没有任何汽车方法)。
,

前面的示例有点复杂,但是您要做的就是绑定您的通用值,这样它就不会接受无法编译的内容。

使用您的代码...

public static <T> int greaterThan(Value obj1,Value obj2){ }

...这里的泛型没用,因为您只使用过Value个对象。 可能之所以起作用,是因为如果您有一个FooValue extends Value对象,因为FooValue是-Value,则在这里将其视为有效参数。

(注意:这是Java泛型的完成方式:继承。)

您可能正在寻找的是这个

public static <T extends Value> int greaterThan(T obj1,T obj2) { }

这是一个绑定,这样泛型类型T被绑定到Value及其子类的所有值。

今天关于关于方法的简单PHP类问题php 方法的分享就到这里,希望大家有所收获,若想了解更多关于DW做的简单PHP管理、java – 自定义Swing组件:关于方法的问题、JAVA 关于方法的返回值的调用、Java泛型-关于对象的大于方法的快速问题等相关知识,可以在本站进行查询。

本文标签: