Почему пустое свойство объекта класса не дает ошибку при доступе к собственности? [Дубликат]

Я бы сделал что-то вроде этого (генерирует все нужные вам). Вы можете позже передать их в sqlplus:

echo "select table_name from user_tables;" | sqlplus -S user/pwd | grep -v "^--" | grep -v "TABLE_NAME" | grep "^[A-Z]" | while read sw;
do echo "desc $sw" | sqlplus -S user/pwd | grep -v "\-\-\-\-\-\-" | awk -F' ' '{print $1}' | while read nw;
do echo "select * from $sw where $nw='val'";
done;
done;

Он дает:

select * from TBL1 where DESCRIPTION='val'
select * from TBL1 where ='val'
select * from TBL2 where Name='val'
select * from TBL2 where LNG_ID='val'

И что он делает - для каждого table_name из user_tables получить каждое поле (от desc) и создать выбор * из таблицы, где поле равно «val».

38
задан igorgue 17 May 2010 в 17:28
поделиться

3 ответа

Ну, общий способ добавления произвольных свойств к объекту:

$object->attributename = value;

Вы можете, намного более чистые, предварительно определить атрибуты в своем классе (PHP 5+ specific, в PHP 4 вы будет использовать старый var $attributename)

class baseclass
 { 

  public $attributename;   // can be set from outside

  private $attributename;  // can be set only from within this specific class

  protected $attributename;  // can be set only from within this class and 
                             // inherited classes

, это настоятельно рекомендуется, поскольку вы также можете документировать свойства в определении вашего класса.

Вы также можете определить getter и методы setter , которые вызываются всякий раз, когда вы пытаетесь изменить свойство объекта.

58
ответ дан Pekka 웃 18 August 2018 в 05:04
поделиться

это статический класс, но тот же принцип будет и для интеллигентного. это позволяет хранить и извлекать все, что вы хотите от этого класса. и выдает ошибку, если вы пытаетесь получить что-то, что не установлено.

class Settings{
    protected static $_values = array();

public static function write( $varName, $val ){ 
    self::$_values[ $varName ] = $val; 
}
public static function read( $varName ){ 

    if( !isset( self::$_values[ $varName ] )){
        throw new Exception( $varName . ' does not exist in Settings' );
    }

    return self::$_values[ $varName ]; 
}
}
0
ответ дан David Morrow 18 August 2018 в 05:04
поделиться

Взгляните на документацию php.net: http://www.php.net/manual/en/language.oop5.properties.php

Атрибуты называемых «свойствами» или «членами класса» в этом случае.

0
ответ дан jordanstephens 18 August 2018 в 05:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: