小编Nik*_*mov的帖子

将对象评估为布尔值

考虑以下:

class MyClass
{
  private $var1 = "apple";
  private $var2 = "orange";
}

$obj = new MyClass();

if($obj) { 
  // do this
}
else {
  // do that
}
Run Code Online (Sandbox Code Playgroud)

PHP将我的对象评估为true,因为它有成员变量.这个逻辑可以以某种方式被覆盖吗?换句话说,当我被视为布尔值时,我可以控制我的类的对象将被评估的内容吗?

php evaluation class object

20
推荐指数
4
解决办法
8269
查看次数

Ember:DS未定义

刚开始学习Ember,举几个例子,基本的东西都失败了.

我正在Uncaught ReferenceError: DS is not defined使用Chrome.

我在Ember.js之前就包括了Handlebars

HTML

<html>
  <head>
    <title>Ember Test App</title>
    <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
    <script type="text/javascript" src="js/handlebars.js"></script>
    <script type="text/javascript" src="js/ember.js"></script>

  </head>
  <body>
    <div class="container">
      <div class="row">
        <div class="span8 offset2" id="app">
        </div>
      </div>
    </div>

  <script type="text/x-handlebars" data-template-name="application">
    <h1>Ember App</h1>
    {{outlet}}
  </script>

  <script type="text/javascript" src="app.js"></script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

App.js

window.App = Ember.Application.create({
  rootElement: $("#app")
});

App.Store = DS.Store.extend({
  revision: 11
});
Run Code Online (Sandbox Code Playgroud)

解决 - 提示:

确保在ember之后包含ember-data:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript" src="js/handlebars.js"></script>
<script type="text/javascript" src="js/ember.js"></script>
<script …
Run Code Online (Sandbox Code Playgroud)

javascript ember.js

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

PHP函数参数:特定类的对象数组

我有一个函数,它接受一个特定类的成员:

public function addPage(My_Page $page)
{
  // ...
}
Run Code Online (Sandbox Code Playgroud)

我想创建另一个带有My_Page对象数组的函数:

public function addPages($pages)
{
  // ...
}
Run Code Online (Sandbox Code Playgroud)

我需要确保$ pages数组的每个元素都是My_Page的一个实例.我可以用foreach($pages as $page)和检查instance of,但我可以在函数定义中以某种方式指定数组必须是My_Page对象的数组吗?即兴创作,如:

public function addPages(array(My_Page)) // I realize this is improper PHP...
Run Code Online (Sandbox Code Playgroud)

谢谢!

php arrays arguments function object

12
推荐指数
2
解决办法
1万
查看次数

如何使用Ruby在RSpec测试之间重新加载模块?

我有一个可以这样配置的模块:

module MyModule
   mattr_accessor :setting
   @@setting = :some_default_value
end

MyModule.setting = :custom_value
Run Code Online (Sandbox Code Playgroud)

我正在使用RSpec测试不同的配置选项,并发现设置在不同测试之间持续存在,因为它们是类变量.

在RSpec测试之间重新加载和重新初始化模块的最佳方法是什么?

ruby rspec module

8
推荐指数
2
解决办法
3095
查看次数

Zend会话标识丢失对象参数

我有一个奇怪的问题,我似乎无法追查.我有一个自定义类("Person"),它扩展了代表用户的Zend_Db_Table_Row_Abstract.除此之外,此类还具有在init()方法中设置的自定义变量,例如:

class Person extends Zend_Db_Table_Row_Abstract
{
        protected $_cdata = array(); // non-db-table data gets put here through __set()

        public function init()
        {
           $this->fullName = $this->firstName." ".$this->lastName; // this is saved to $this->_cdata['fullName']
        } 
Run Code Online (Sandbox Code Playgroud)

登录后,我将此类的对象存储为Zend Auth Identity:

$r = $auth->authenticate($authAdapter);
if($r->isValid())
{
  $user = $db->getUserByEmail($email); // Retrieves an object of class "Person"
  $auth->getStorage()->write($user);
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我在与登录相同的操作请求中调用Auth Identity,它将正常工作:

echo $user->fullName; // Will print "John Smith" or whatever it is
Run Code Online (Sandbox Code Playgroud)

但是,当我调用另一个动作并调用Auth Identity时,我丢失了存储在"_cdata"数组中的任何内容:

$auth = Zend_Auth::getInstance();
if($auth->hasIdentity() {
   $user = $auth->getIdentity();
   echo $user->fullName; // Prints …
Run Code Online (Sandbox Code Playgroud)

php session zend-framework zend-auth

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