Вам не хватает преобразования данных изображения LabVIEW в более общий формат изображения, который будет понят за пределами контекста LabVIEW, например, с помощью инструмента CodeBeautify. Все, что вам нужно сделать, это преобразовать данные изображения с помощью LV Image в PNG Data.VI в PNG, прежде чем кодировать его.
Используя приведенный ниже пример, если я возьму вывод кодированной строки base64 и использую инструмент CodeBeautify base64-to-image-converter , он покажет ожидаемое изображение.
Вот что-то, что я сделал на скорую руку действительно быстро, чтобы показать, как можно инициировать ошибки, когда что-то как этот происходит:
<?php
error_reporting( E_ALL | E_STRICT );
class Joe {
public $lastName;
public function __set( $name, $value ) {
if ( !property_exists( $this, $name ) ) {
trigger_error( 'Undefined property via __set(): ' . $name, E_USER_NOTICE );
return null;
}
$this->$name = $value;
}
public function __get( $name ) {
if ( !property_exists( $this, $name ) ) {
trigger_error( 'Undefined property via __get(): ' . $name, E_USER_NOTICE );
return null;
}
return $this->$name;
}
}
$joe = new Joe();
$joe->lastNom = "Smith";
echo $joe->lastNom , "\n";
?>
Из документов PHP о error_reporting
:
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
Вы могли попробовать:
error_reporting(E_ALL|E_STRICT);
Править: Хорошо, я теперь считал обновленный вопрос. Я думаю, что Вам не повезло. Это допустимо в PHP. Некоторые говорят, что это - функция. :)
Можно использовать это в коде:
error_reporting(E_ALL);
или это в php.ini
php_error_reporting=5
Установка error_reporting для включения E_NOTICE может помочь несколько. Это имеет тенденцию отобразить уведомление/ошибку каждый раз, когда Вы используете неопределенную переменную (обратите внимание, что это не останавливает выполнение).
Для ловли необъявленного свойства, можно установить Ваш _ _Set () волшебный метод для ловли их
function __set($sKey, $sValue)
{
// any setter data should be *returned* here
// NOTE: this function will only get called if the property is not
// publicly accessible.
trigger_error("Non-existing property name ".$sKey, E_USER_WARNING);
}
Знайте, что это старый пост, но наткнулся на него в поисках решения.
Это мое окончательное решение:
У меня есть абстрактный класс, расширяемый моими классами, который вызывает ошибку для magic __get и __set.
Это мерзко, но работает!
Это похоже на предложения выше, но в объявление метода также добавлено «final», чтобы люди не перезаписывали его.
Мы также используем анализатор кода, чтобы отловить их, но я хотел, чтобы мои сообщения об ошибках «вживую», как я кодировал, вместо того, чтобы ждать отчета от анализатора. (Также люди могут игнорировать отчеты о сниффинге!)
Пример кода ниже
<?php
/**
* Abstract
* Some default Abstract functions that everything should extend
*
* @package example
* @subpackage lib
*/
/**
* Class mh_abstract
* Some default MH Abstract functions that everything should extend
*
* @package example
* @subpackage lib
*/
abstract class lib_abstract
{
/**
* Throws an error if php magic set is called
*
* @param string $key
* @param string|object $value
*
* @throws Exception When trying to set a new class property
*/
final public function __set($key, $value)
{
// get if the thing we are trying to set is a object
if(is_object($value))
{
// if so let's just report it's name, not the full object
$value = 'object:'.get_class($value);
}
// throw the error!
throw new mh_lib_error_dev_unknownClassProperty('Tried to set new property '.$key.' with value '.$value);
}
/**
* Throws an error if php magic get is called
*
* @param string $key
*
* @throws Exception When trying to set a new class property
*/
final public function __get($key)
{
// throw the error!
throw new mh_lib_error_dev_unknownClassProperty('Tried to get new property '.$key);
}
}