Использование self:: под двойными ковычками

ChAk

Новичок
Не получается использовать self:: внутри текстового блока окруженного двойными кавычками
Пример:
PHP:
class Sql 
{
	private static $_select ="S.*";

	public static function songs() {
		return "
			select
				{self::$_select}
			from sx3_songs as S
		";
	}
}
Вернет текст:
select
{self::$_select}
from sx3_songs as S
Вместо желаемого:
select
S.*
from sx3_songs as S
Конечно можно сделать так:
PHP:
return "
			select
				" . self::$_select ."
			from sx3_songs as S
";
Но тогда блок для IDE перестает считаться SQL запросом и соответственно отрубается подсветка синтаксиса и тп.

Использовать вариант с $this->_select не могу так как нужен статический метод, а внутри статического метода $this использовать нельзя.

Возможно, как-нибудь использовать статические переменные класса внутри текста окруженного двойными кавычками?
 

fixxxer

К.О.
Партнер клуба
Я бы на вашем месте не о подсветке думал, а об именах классов и переменных.
 

ChAk

Новичок
Разумеется это максимально упрощенный пример в жизни все на много страшнее.
 

ChAk

Новичок
Redjik
Спасибо, но разумеется первым делом я изучил этот раздел. Там нет решения.
 

С.

Продвинутый новичок
ChAk, с чего ты решил, что в двойных ковычках можно писать какие угодно синтаксические конструкции и в частности "::"?
 

ChAk

Новичок
С.
А почему нет, логично прерположить что раз многое можно то и это должно быть возможно. Хотя конечно возможно это не возможно.
 

Redjik

Джедай-мастер
ChAk,С.
в ссылке, что скидывал есть пример... плохо читали...
PHP:
<?php
// Show all errors.
error_reporting(E_ALL);

class beers {
    const softdrink = 'rootbeer';
    public static $ale = 'ipa';
}

$rootbeer = 'A & W';
$ipa = 'Alexander Keith\'s';

// This works; outputs: I'd like an A & W
echo "I'd like an {${beers::softdrink}}\n";

// This works too; outputs: I'd like an Alexander Keith's
echo "I'd like an {${beers::$ale}}\n";
?>
 

ChAk

Новичок
Redjik
Этот пример я видел
Это не то. Здесь через статическую переменную класса задается не содержание которое нужно вставить, а имя переменной содержание которое вставлется.
Если попытаться подсунут в стат переменную имя стат переменной, все равно не работает.
 

Redjik

Джедай-мастер
Да какая разница.
Вурдалак - главное что синтаксис работает...
а уж как заменить self на имя класса - я думаю тс сам догадается.
 

Redjik

Джедай-мастер
Вурдалак
PHP:
class Check{

    public static $check = 'Hello world';

    public static function helloWorld()
    {
        $class = get_called_class();
        echo "This is {$class::$check} \n";
        //This is Hello world
    }
}

$class = 'Check';
echo "This is {$class::$check} \n";
//This is Hello world

Check::helloWorld();
Дебил блять - не комментируй больше то, что я пишу.
Мне твое ущербное ЧСВ до жопы.
 
  • Like
Реакции: ChAk

Вурдалак

Продвинутый новичок
Redjik, то есть, по-твоему, мне не стоит указывать на твои регулярные ошибки? Разве я виноват в том, что ты нажимаешь на Submit, не читая собственной писанины? :D

Я удивлён, что в этом топике ты ещё ни разу про Yii не упомянул. Спасибо хоть на этом.
 

ChAk

Новичок
Redjik
Спасибо твой способ действительно работает.
Правда одна дополнительня строка для объявления переменной с именем класса, что не гуд, но лучше чем то что у меня сейчас.
 

Redjik

Джедай-мастер
Вурдалак
проведи для себя тонкую грань между указать на ошибку и доебаться...
от тебя я ни одного толкового указания на ошибку не увидел, как и толковых советов за последнее время вообще кому либо...
толстый жирный троль.

Прошу админов проявить инициативу по поводу конфликта ... и почистить ветку.

ЗЫ. и где же моя ошибка то? уж в последнем посте пришлось все детально разжевать - но ошибку не вижу.
ЗЫЫ. извиняюсь за мат, но этот человек с завышенным ЧСВ мешает мне общаться на форуме и давать дельные советы.
UPD. ух ты оказывается можно игнор ставить - интересно, я даже сообщения его видеть не буду?
Вурдалак - нука напиши ченить?
 

Redjik

Джедай-мастер
ChAk
Вообще да - стоит посмотреть тебе как Dao сделано на Yii - там как раз подобный подход для префиксов в бд.
 

AmdY

Пью пиво
Команда форума
Redjik
Прошу админов проявить инициативу по поводу конфликта ... и почистить ветку.
иди в жопу и извинись перед Ragazzo, здесь проблема в версиях php.
 

Redjik

Джедай-мастер
Я с Ragazzo и не ссорился...
А если у кого-то это на 5.2 не работает - то это не мои проблемы.
 
Сверху