有没有简洁的方法来检查是否设置了变量,然后回显它而不重复相同的变量名称?
而不是这个:
<?php
if(!empty($this->variable)) {
echo '<a href="', $this->variable, '">Link</a>';
}
?>
Run Code Online (Sandbox Code Playgroud)
我正在考虑这种C风格的伪代码:
<?php
echo if(!empty($this->variable, '<a href="', %s, '">Link</a>'));
?>
Run Code Online (Sandbox Code Playgroud)
PHP有sprintf,但它并没有完全按我所希望的那样做.如果当然我可以用它来制作一个方法/功能,但肯定必须有一种"本地"的方法吗?
更新:$this->variable
如果我理解,三元操作也会重复这一部分?
echo (!empty($this->variable) ? '<a href="',$this->variable,'">Link</a> : "nothing");
Run Code Online (Sandbox Code Playgroud) 一段时间后回到Java,我正在尝试使用命令行在Java 8,Jersey 2.27和Jetty 9.4.9上使用简单的RESTful API.该应用程序确实有效,但我不断收到数百条警告:
2018-04-27 01:17:24.845:WARN:oeja.AnnotationParser:main: Unrecognized runtime asm version, assuming 393216
2018-04-27 01:17:24.945:WARN:oeja.AnnotationParser:qtp988458918-12: javax.el.ArrayELResolver scanned from multiple locations: jar:file:///tmp/jetty-0.0.0.0-8081-paste4j.war-_-any-8355640322316327743.dir/webapp/WEB-INF/lib/el-api-2.2.jar!/javax/el/ArrayELResolver.class, jar:file:///paste4j/deployment/jetty-runner-9.4.9.v20180320.jar!/javax/el/ArrayELResolver.class
2018-04-27 01:17:24.949:WARN:oeja.AnnotationParser:qtp988458918-12: javax.el.BeanELResolver$BeanProperties scanned from multiple locations: jar:file:///tmp/jetty-0.0.0.0-8081-paste4j.war-_-any-8355640322316327743.dir/webapp/WEB-INF/lib/el-api-2.2.jar!/javax/el/BeanELResolver$BeanProperties.class, jar:file:///paste4j/deployment/jetty-runner-9.4.9.v20180320.jar!/javax/el/BeanELResolver$BeanProperties.class
2018-04-27 01:17:24.952:WARN:oeja.AnnotationParser:qtp988458918-12: javax.el.BeanELResolver$BeanProperty scanned from multiple locations: jar:file:///tmp/jetty-0.0.0.0-8081-paste4j.war-_-any-8355640322316327743.dir/webapp/WEB-INF/lib/el-api-2.2.jar!/javax/el/BeanELResolver$BeanProperty.class, jar:file:///paste4j/deployment/jetty-runner-9.4.9.v20180320.jar!/javax/el/BeanELResolver$BeanProperty.class
2018-04-27 01:17:24.954:WARN:oeja.AnnotationParser:qtp988458918-12: javax.el.BeanELResolver scanned from multiple locations: jar:file:///tmp/jetty-0.0.0.0-8081-paste4j.war-_-any-8355640322316327743.dir/webapp/WEB-INF/lib/el-api-2.2.jar!/javax/el/BeanELResolver.class, jar:file:///paste4j/deployment/jetty-runner-9.4.9.v20180320.jar!/javax/el/BeanELResolver.class
2018-04-27 01:17:24.959:WARN:oeja.AnnotationParser:qtp988458918-12: javax.el.CompositeELResolver scanned from multiple locations: jar:file:///tmp/jetty-0.0.0.0-8081-paste4j.war-_-any-8355640322316327743.dir/webapp/WEB-INF/lib/el-api-2.2.jar!/javax/el/CompositeELResolver.class, jar:file:///paste4j/deployment/jetty-runner-9.4.9.v20180320.jar!/javax/el/CompositeELResolver.class
2018-04-27 01:17:24.961:WARN:oeja.AnnotationParser:qtp988458918-12: javax.el.ELContext scanned from multiple locations: jar:file:///tmp/jetty-0.0.0.0-8081-paste4j.war-_-any-8355640322316327743.dir/webapp/WEB-INF/lib/el-api-2.2.jar!/javax/el/ELContext.class, jar:file:///paste4j/deployment/jetty-runner-9.4.9.v20180320.jar!/javax/el/ELContext.class
2018-04-27 01:17:24.962:WARN:oeja.AnnotationParser:qtp988458918-15: javax.annotation.Generated scanned from multiple locations: jar:file:///paste4j/deployment/jetty-runner-9.4.9.v20180320.jar!/javax/annotation/Generated.class, jar:file:///tmp/jetty-0.0.0.0-8081-paste4j.war-_-any-8355640322316327743.dir/webapp/WEB-INF/lib/javax.annotation-api-1.2.jar!/javax/annotation/Generated.class
2018-04-27 01:17:24.962:WARN:oeja.AnnotationParser:qtp988458918-15: …
Run Code Online (Sandbox Code Playgroud) 我不太确定如何将这个简单的旧 Flask-Script manage.py迁移到 Flask 0.11+ 中提供的 CLI
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from app import app, db
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
if __name__ == "__main__":
manager.run()
Run Code Online (Sandbox Code Playgroud)
它是这样使用的,与 Flask Migrate 一起使用:
python manage.py db migrate
Run Code Online (Sandbox Code Playgroud)
按照Flask 2.x 文档,我可以获得:
import click
from flask_migrate import Migrate, MigrateCommand
from app import app, db
@app.cli.command("db")
@click.argument("migration_command")
def handle_command(migration_command):
print("Handling command {}".format(migration_command))
Run Code Online (Sandbox Code Playgroud)
但运行时:
python manage.py db migrate
Run Code Online (Sandbox Code Playgroud)
但它似乎handle_command
从未被调用,并且该db migrate
命令似乎没有运行。
另外,Flask …
为什么这样做:(有效 = 每个代表文本都出现在前一个下方)
Column {
Repeater {
model: ['test1', 'test2', 'test3']
delegate: Text {
text: modelData
}
}
}
Run Code Online (Sandbox Code Playgroud)
但这打破了布局,因为每个文本都出现在彼此之上:
Column {
Repeater {
model: ['test1', 'test2', 'test3']
delegate: Item {
Text {
text: modelData
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我创建一个单独的组件,也会发生同样的事情:
我的文本项.qml
import QtQuick 2.5
Item {
property string myText: ''
Text {
text: myText
}
}
Run Code Online (Sandbox Code Playgroud)
进而:
Column {
Repeater {
model: ['test1', 'test2', 'test3']
delegate: MyTextItem {
myText: modelData
}
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到了一个不幸的情况,其中一个特定文件的文件名是Python中的关键字.有没有办法在没有重命名文件的情况下"绕过"这个?
libraries/import.py
有功能 my_function()
from libraries.import import my_function
Run Code Online (Sandbox Code Playgroud)
得到:
E999 - SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
并指向" .import
"部分
我试了几件事:
from "libraries.import" import my_function
from libraries."import" import my_function
from libraries import import.my_function
from repr(libraries.import) import my_function
from `libraries.import` import my_function # deprecated
import libraries.import.my_function
Run Code Online (Sandbox Code Playgroud)
但它们都有相同的结果:SyntaxError
.
也无法在Python手册中找到任何提示 - 但也没有关于使用保留名称的警告:)这可能吗?怎么样?