小编fro*_*ous的帖子

我什么时候写自己的异常类?

我一直在想,因为当我需要编写自己的异常类扩展时,我进入了OOP的阴暗水域并写了几个分布式库.

到目前为止,我只是使用内置的异常类,它似乎很好地为我服务.是否有必要,如果可以的话,我可以编写一个异常子类.

php oop exception

20
推荐指数
1
解决办法
5527
查看次数

令人费解的php解析器错误

好吧也许不是那么令人费解,但在这里.

我正在乱搞并注意到这一点,只是<?php在一个文件中输入,只是那个,之后没有空格,只有标签,抛出一个解析错误.

只有一个空间,它工作正常.我想知道是否有人知道为什么解析器会窒息,因为除非省略结束标记,否则完全没问题.谢谢.

php parsing php-internals

8
推荐指数
1
解决办法
802
查看次数

类型转换和与松散运算符"=="的比较

我有一个令我困惑的问题.我之前注意到了这一点,但直到今天才注意到它.我试图编写自己的整数字符串检查.我知道的is_numeric(),但它是不够的,因为它计算float的数字不仅integersis_int()不上的串号工作.

我做了类似的事情


$var1 = 'string';
$var2 = '123'; 

var_dump( (int)$var1 == $var1);// boolean true 
var_dump((int)$var2 == $var2);// boolean true

 var_dump((int)$var1);//int 0
 var_dump($var1);//string 'string' (length=6)
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,第二个var转储输出为真,因为我期望与php的松散比较,字符串和整数版本相等.

然而,对于第一个,我不明白为什么会这样.我尝试过施法bool,它仍然给我相同的结果.

我已经尝试将cast var赋值给一个新的变量并比较两者,结果仍然相同

这是我做错了什么,还是一个php bug?

***注意我不是在这里比较类型.我实际上是想利用int 0不等于的事实string 'string'.

我用不同的方式编写了整数检查,所以我真的不需要替代方案.

***编辑我做了一些额外的检查,结果证明这0 == 'string'也是正确的.怎么可能?

***编辑2问题下面有多个正确答案.感谢所有回答的人.

php comparison casting

7
推荐指数
1
解决办法
2033
查看次数

没有JavaScript的Web UI框架

我是一个内心的程序员.我在UI开发方面并不擅长,占用了90%的时间.

我想知道是否有一个只使用CSS而不使用JavaScript的UI框架.我找到了http://www.gantry-framework.org,但似乎是针对Joomla和Wordpress.

任何建议都将非常受欢迎.这将有助于我的发展.

谢谢.

加成

我正在寻找一个框架,允许我轻松地为我的网站设计和部署用户界面.减少手动制作它们所需时间的东西.

我不打算制作效果或其他特殊的东西,如模态窗口等(我使用Qooxdoo和jQuery UI进行高级UI).只是基本的布局和漂亮的外观.

css user-interface frameworks

4
推荐指数
1
解决办法
4040
查看次数

Google Apps脚本自动生成的库文档

我目前正在开发Google Apps脚本库,该库基本上将电子表格视为数据库对象。

当前,该库具有两个相同的功能,例如

/**
* Opens and creates a query object for a spreadsheet with the given url.
*
* @param {String} the url of the spreadsheet
* @return {SpreadsheetQuery_} a spreadsheet query object for the given spreadsheet
*/
function openByUrl(url) {
    return new SpreadsheetQuery_(SpreadsheetApp.openByUrl(url));
}
Run Code Online (Sandbox Code Playgroud)

现在,对于这两个公共函数,生成的文档仅显示返回类型,而不显示参数或附带的说明。我假设这是一个Google问题,并没有真正打扰。

但是我的主要问题是,由于函数正在从私有函数实例化对象,因此如何获取自动文档以显示该对象上存在的方法。所有功能都将由对象提供,如果GAS可以在其上显示方法,那就太好了。

注意


这些方法都放在函数的原型上。例如。

SpreadsheetQuery_.prototype.from =函数(工作表){
    如果(_.isNumeric(sheet)){
        ....
}

谢谢。

documentation shared-libraries code-documentation intellisense-documentati google-apps-script

3
推荐指数
1
解决办法
1342
查看次数

Java中"<object>"运算符的含义

随着恐惧听起来愚蠢.最近,我开始使用java/android.我喜欢它,但是为了所有好的爱,我遇到了一个我似乎无法理解的操作员.问题是,我甚至不知道它的名字,因此谷歌搜索几乎是不可能的.我没有找到任何关于它的信息,不是因为它不存在,而是因为我甚至不知道从哪里开始.

运营商是<someObject>.使用相同的运算符List<object>.当我在android中使用AsyncTask类时,我实际上对它很着迷

MyClass extends AsyncTask<String[], Drawable[], Drawable[]>{
     ...
Run Code Online (Sandbox Code Playgroud)

任何有关这方面的信息将不胜感激.

java android operators

1
推荐指数
1
解决办法
217
查看次数

BackStack Fragments 在旋转时为空白

在我的活动中,我正在加载片段并将它们添加到用户单击项目时的后台堆栈中。这工作正常并且后台加载良好。

不幸的是,当我旋转设备时,活动是空白的。我已经在 SO 和 Google 上尝试了所有可能的方法。

我尝试通过在用户单击时简单地替换片段并将背面作为导航处理来自己管理导航。这工作正常,但如果堆栈大于 1,我将失去我编码以更改导航抽屉以显示后退箭头的自动功能。

我尝试删除整个堆栈并按照用户在旋转设备时单击的顺序添加各个片段。这行不通。似乎删除和替换不正常。

我尝试使用 fragmentManager.findbytag 添加片段,但它抛出一个非法状态异常“片段已经添加”。我在 SO 上找到了一个解决方案来消除过渡。工作一次然后停止。不知道为什么。

每次更改时,我都会敬酒以检查显示 backstack 计数,我意识到添加后堆栈仍然显示正确的计数,但页面仍然是空白的。它甚至需要 2 次后退才能将活动退出到上一个活动。

我放置了一个断点来检查是否在片段中调用了 onCreateView,是的,每次旋转手机时都会调用它。

基本上,我的代码现在看起来像这样,因为我已经放弃了。

@Override
    protected void onCreate(Bundle savedInstanceState) {
        mPosition = 1;

        super.onCreate(savedInstanceState);

        if(savedInstanceState != null) {
            mLastArtistFragmentTag = savedInstanceState.getString(SAVE_FRAGMENT_LAST_ARTIST);
            mLastAlbumFragmentTag = savedInstanceState.getString(SAVE_FRAGMENT_LAST_ALBUM);
            mLastSongFragmentTag = savedInstanceState.getString(SAVE_FRAGMENT_LAST_SONG);

            mLastFragmentType = savedInstanceState.getInt(SAVE_FRAGMENT_LAST_TYPE);
        }

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Load();
            }
        }, 100);
    }

    void Load() {

        findViewById(R.id.loading).setVisibility(View.GONE);

        ViewStub stub = (ViewStub) findViewById(R.id.container_stub);
        stub.setLayoutResource(R.layout.activity_music);
        stub.inflate();




    if(mLastArtistFragmentTag == null) {
        getSupportFragmentManager().beginTransaction()
                .replace(R.id.base_container, …
Run Code Online (Sandbox Code Playgroud)

android fragmentmanager

1
推荐指数
1
解决办法
2049
查看次数