Я не понимаю строку, где переменная x назначена адресу R
blockquote>int &R = x;
В приведенной выше строке объявляется
reference-to-int
с именемR
, и делает его ссылкой на уже существующую переменнуюx
. то есть в любом коде функции ниже строки,R
будет действовать как псевдоним дляx
.//int &R = &x; // ERROR!
Приведенная выше строка (когда она не закомментирована) выдает ошибку, поскольку значение в правой части
=
имеет типint *
(т.е. это указатель на int), в то время как значение на левой стороне=
имеет типint &
(то есть это ссылка на int).В C ++ ссылки действуют в некотором смысле как указатели, но с точки зрения их синтаксиса они в основном следуют тем же правилам, что и тип, на который они ссылаются - это потому, что они действуют как псевдонимы для значения этого типа , Так что в этом случае, так же как вы не можете назначить указатель на
int
, вы также не можете назначить указатель наint &
:int R = &x; // This would also be an error
Я сделал бы это этот путь. В основном, если файл не существует, попытайтесь добавить .php к нему.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ $1.php [QSA,L]
Если можно изменить httpd.conf и что к, можно также поместить:
ForceType application/x-httpd-php
в файле, поскольку это вызовет все пути, названные, чтобы быть файлами PHP. Я думаю, что это также работает со строками запроса.
Это работает:
RewriteCond %{QUERY_STRING} ^.+$
RewriteRule ^/?([^/\.]+)$ /$1.php [L]
Идея состоит в том, чтобы удостовериться, что существует строка запроса (вопросительный знак плюс материал), и раз так проверьте, не имеет ли материал перед вопросительным знаком никакого расширения и если так, добавьте .php.
Что-то как...
RewriteRule /something/(.+)?(.+) /something/$1.php?$2
вероятно, работал бы.
Соответствия только соединяют каналом без расширения:
RewriteRule ^(([^/]+/+)*[^\.]+)$ $1.php
Править: В моем тестировании строка запроса передается автоматически. Если это не делает, можно использовать это вместо этого:
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(([^/]+/+)*[^\.]+)$ $1.php?%1